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