在mysql中选择带空格的记录

时间:2016-02-29 18:57:37

标签: mysql sql

我有一个列,其中包含许多共同一个单词的记录(例如,频道名称):

|        channel        |
--------------------------
| Fox                   |
| Fox Life              |
| Fox News              |
| Fox Action            |
| Fox Movies            | 

搜索条件是:“频道福克斯新闻”

现在我想选择唯一拥有福克斯新闻的行。

我尝试了很多东西,例如用空格分割字符串,或者使用LIKE但没有成功,因为单词“Fox”总是选择所有五个记录。

请注意,它必须是字级匹配。

感谢

3 个答案:

答案 0 :(得分:2)

这是全文索引的尖叫声

ALTER TABLE T add FULLTEXT index(channel);

您使用

进行搜索
SELECT * FROM t WHERE MATCH (channel)
    AGAINST ('+Fox +News' IN BOOLEAN MODE);

加号表示单词HAS存在于列中 您需要注意以下几点:

innodb_ft_min_token_size

搜索字词的最小尺寸

stop words

答案 1 :(得分:0)

如何使用like

where lower(channel) like '%fox news%'

答案 2 :(得分:0)

只要两个人都喜欢这样的话就可以了:

从频道中选择名称,例如'%fox%'并命名为'%news%';