我希望您能帮助计算 MySql 表中每个“id”在标题中出现的单词。
表 Article 和 ExpectedResult 可在http://www.sqlfiddle.com/#!9/f985f/1中找到
提前致谢。
我希望您能帮助计算 MySql 表中每个“id”在标题中出现的单词。
表 Article 和 ExpectedResult 可在http://www.sqlfiddle.com/#!9/f985f/1中找到
提前致谢。
一种方法:
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在这里。