Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Truy vấn đếm các từ riêng biệt của tất cả các giá trị trong một cột

Không phải một cách dễ dàng. Nếu bạn biết số lượng từ tối đa, thì bạn có thể làm như sau:

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;

Lưu ý rằng điều này chỉ hoạt động nếu các từ được phân tách bằng dấu cách. Nếu bạn có một từ điển riêng gồm tất cả các từ có thể có, bạn cũng có thể sử dụng từ điển đó, chẳng hạn như:

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. Laravel sẽ không cho phép tôi di chuyển một bảng vì nó đã tồn tại

  2. Giá trị cờ 'Option' của Trình kết nối MySQL ODBC odbc.ini

  3. Có sự khác biệt nào giữa varchar (10) và varchar (1000) khi chúng ta lưu trữ chuỗi có độ dài nhỏ hơn 10 không?

  4. Lỗi khi tạo bảng

  5. Java / MySQL - Làm cách nào để truy cập kết nối từ một lớp khác?