Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapytanie, aby policzyć różne słowa wszystkich wartości w kolumnie

Nie w łatwy sposób. Jeśli znasz maksymalną liczbę słów, możesz zrobić coś takiego:

select substring_index(substring_index(p.post, ' ', n.n), ' ', -1) as word,
       count(*)
from post p join
     (select 1 as n union all select 2 union all select 3 union all select 4
     ) n
     on length(p.post) - length(replace(p.post, ' ', '')) < n.n
group by word;

Zauważ, że działa to tylko wtedy, gdy słowa są oddzielone pojedynczymi odstępami. Jeśli masz osobny słownik wszystkich możliwych słów, możesz go również użyć, na przykład:

select d.word, count(p.id)
from dictionary d left join
     posts p
     on concat(' ', p.post, ' ') like concat(' %', d.word, ' %')
group by d.word


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql:Znajdź wpisy z określonego dnia za pomocą kolumny sygnatury czasowej

  2. Czy istnieje sprytny sposób na uruchamianie wielu zapytań w mysql oddzielonych średnikiem;

  3. Zautomatyzuj mysql_secure_installation za pomocą polecenia echo za pomocą skryptu powłoki

  4. Jak przechowywać adres zgodny z IPv6 w relacyjnej bazie danych?

  5. StrongLoop:OsadzeniaWiele kontra maWiele i należąDo