我有一个列,其中包含许多共同一个单词的记录(例如,频道名称):
| channel |
--------------------------
| Fox |
| Fox Life |
| Fox News |
| Fox Action |
| Fox Movies |
搜索条件是:“频道福克斯新闻”
现在我想选择唯一拥有福克斯新闻的行。
我尝试了很多东西,例如用空格分割字符串,或者使用LIKE但没有成功,因为单词“Fox”总是选择所有五个记录。
请注意,它必须是字级匹配。
感谢
答案 0 :(得分:2)
这是全文索引的尖叫声
ALTER TABLE T add FULLTEXT index(channel);
您使用
进行搜索SELECT * FROM t WHERE MATCH (channel)
AGAINST ('+Fox +News' IN BOOLEAN MODE);
加号表示单词HAS存在于列中 您需要注意以下几点:
搜索字词的最小尺寸
答案 1 :(得分:0)
如何使用like
?
where lower(channel) like '%fox news%'
答案 2 :(得分:0)
只要两个人都喜欢这样的话就可以了:
从频道中选择名称,例如'%fox%'并命名为'%news%';