Mysql
 sql >> Base de données >  >> RDS >> Mysql

Compter les occurrences d'une sous-chaîne dans une colonne MySQL

Cela devrait vous donner une liste de screen_names et le nombre total de tous les hashtags qu'ils utilisent.

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

Mais... c'est une mauvaise requête si la table est énorme. Je pourrais spécifier des utilisateurs spécifiques dans la sélection interne si vous avez juste besoin de compter pour un seul utilisateur. Comme ceci :

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