MySQL - 如何计算文章标题中的单词出现次数

时间:2013-05-22 13:23:09

标签: mysql count find-occurrences

我希望你帮助计算MySql表中每个'i​​d'标题中的单词出现次数。

表格Article和ExpectedResult可在http://www.sqlfiddle.com/#!9/f985f/1

中找到

提前致谢。

1 个答案:

答案 0 :(得分:0)

一种方法:

select a.id, 
       w.word, 
       (LENGTH(a.title) - LENGTH(REPLACE(a.title, w.word, ''))) / LENGTH(w.word) `count`
from Articles a join
(select distinct substring_index(substring_index(title,' ',n),' ',-1) word
 from Articles
 cross join 
 (select 1 n union all select 2 union all select 3 union all select 4 union all
  select 5 union all select 6 union all select 7 union all select 8 union all
  select 9 union all select 10 union all select 11 union all select 12) n
) w on concat(' ',a.title,' ') like concat('% ',w.word,' %')

请注意,n中的值的数量应该是单个记录title中可以出现的最大单词数 - 我在这里使用了12,因为它超过了任何记录中最大的单词数提供的数据中的标题,但可能需要更大的数字集(取决于实际数据)。

SQLFiddle here