例如,我有那张表
id title
1 abcd apple
2 adqsdd google
3 adzdaz android
4 gdfgdfg apple
5 yuiyu windows
因此,我们可以看到“apple”这个词在不同的行中重复出现。 如何进行SQL查询,该查询将显示不同行中的单词重复,因此它将显示:“apple”
答案 0 :(得分:0)
唯一可行的方法是,如果你有一个单词列表。如果是这样的话:
select w.word, count(*)
from words w join
t
on concat(' ', t.title, ' ') like concat('% ', w.word, ' %')
group by w.word
having count(*) > 1;
编辑:
如果您没有单词,但是您知道“标题”具有固定数量的单词,则可以生成可用单词。例如,如果所有标题最多包含4个单词:
select w.word, count(*)
from (select substring_index(title, ' ', 1) as word union
select substring_index(substring_index(title, ' ', 2), ' ', -1) union
select substring_index(substring_index(title, ' ', 3), ' ', -1) union
select substring_index(substring_index(title, ' ', 4), ' ', -1)
) w join
t
on concat(' ', t.title, ' ') like concat('% ', w.word, ' %')
group by w.word
having count(*) > 1;
显然,您可以将其概括为更长的标题。
答案 1 :(得分:0)
在GROUP BY
和HAVING
上阅读,这两项将允许您选择此类条件(使用HAVING COUNT(*)>1
等)。