Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Contar ocorrências de uma substring em uma coluna MySQL


Isso deve fornecer uma lista de nomes de tela e a contagem total de todas as hashtags que eles usam.
SELECT  foo.screen_name, SUM(foo.counts) FROM 
  (
    SELECT screen_name, 
           LENGTH( tweet_text) - LENGTH(REPLACE(tweet_text, '#', '')) AS counts 
    FROM tweet_table 
  ) as foo 
GROUP BY  foo.screen_name

Mas... é uma consulta desagradável se a tabela for enorme. Eu posso especificar um usuário específico na seleção interna se você precisar apenas de contagens para um único usuário. Assim:
SELECT  foo.screen_name, SUM(foo.counts) FROM 
 (
    SELECT screen_name, 
         LENGTH( tweet_text) - LENGTH(REPLACE(tweet_text, '#', '')) AS counts 
    FROM tweet_table WHERE  screen_name = 'tweeter_user_1' 
 ) as foo 
GROUP BY  foo.screen_name