Contagem de ocorrências de uma subcadeia em uma coluna MySQL
Eu tenho uma tabela que armazena informações de muitos tweets do Twitter, incluindo o texto do tweet e o nome de tela do usuário que twittou o tweet. Os tweets contêm hashtags (começando com #), quero contar o número de hashtags que um usuário específico twittou:
tweet_id | tweet_text | screen_name |
--------------------------------------------------------------------------------------------
1 | #hashtag1 #otherhashtag2 #hashtag3 some more text | tweeter_user_1 |
2 | some text #hashtag1 #hashtag4 more text | tweeter_user_2 |
3 | #hashtag5 #hashtag1 @not a hashtag some#nothashtag | tweeter_user_1 |
4 | #hashtag1 with more text | tweeter_user_3 |
5 | #otherhashtag2 #hashtag3,#hashtag4 more text | tweeter_user_1 |
Se eu fosse contar as hashtags de tweeter_user_1, o resultado que eu esperava é 8, se eu quisesse que as hashtags de tweeter_user_3 ele retornasse 1. Como posso fazer isso assumindo que o nome da minha tabela é tweets?
Eu tentei isso:SELECT COUNT( * ) FROM tweets WHERE( LENGTH( REPLACE( tweet_text, '#%', '@') = 0 ) ) AND screen_name = 'tweeter_user_1'
mas não funcionou
Eu ficaria feliz se o resultado de tweeter_user_1 também fosse 9: D