sql >> Databáze >  >> RDS >> Mysql

Počítejte výskyty dílčího řetězce ve sloupci MySQL

To by vám mělo poskytnout seznam screen_names a celkový počet všech hashtagů, které používají.

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

Ale... je to ošklivý dotaz, pokud je stůl obrovský. Mohl bych zadat konkrétní uživatele ve vnitřním výběru, pokud potřebujete pouze počty pro jednoho uživatele. Takhle:

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


  1. Upozornění:formulář na této stránce má více než 1000 polí PHP MySql

  2. Potřebuje Laravel's soft_delete index na MySQL?

  3. Co je tady špatného na mém SQL? #1089 - Nesprávný klíč předpony

  4. Jak zálohovat a obnovit databázi MySQL?