Mysql
 sql >> база данни >  >> RDS >> Mysql

Заявка за преброяване на отделните думи от всички стойности в колона

Не по лесен начин. Ако знаете максималния брой думи, тогава можете да направите нещо подобно:

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;

Имайте предвид, че това работи само ако думите са разделени с единични интервали. Ако имате отделен речник на всички възможни думи, можете също да го използвате, нещо като:

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 GROUP чрез или използвайки PHP?

  2. Инсталирайте множество MySQL екземпляри на Linux сървър - използвайте отделен конфигурационен файл на MySQL

  3. Изключение на mySQL:Не може да се свърже с нито един от посочените хостове на MySQL. чрез C#

  4. Програмно идентифицирайте django много-към-много връзки

  5. Как да се справите с множество таблици за търсене за начинаещи на SQL?