簡単な方法ではありません。単語の最大数がわかっている場合は、次のようにすることができます:
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