Możesz wyodrębnić słowa, manipulując ciągami. Zakładając, że masz tabelę liczb i słowa są oddzielone pojedynczymi odstępami:
select substring_index(substring_index(r.title, ' ', n.n), ' ', -1) as word,
count(*)
from results r join
numbers n
on n.n <= length(title) - length(replace(title, ' ', '')) + 1
group by word;
Jeśli nie masz tabeli liczb, możesz utworzyć ją ręcznie za pomocą podzapytania:
from results r join
(select 1 as n union all select 2 union all select 3 union all . . .
) n
. . .
SQL Fiddle (dzięki uprzejmości @GrzegorzAdamKowalski) jest tutaj .