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

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


搜索条件是:“ Channel Fox新闻”

现在,我想选择唯一具有Fox News的行。

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

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

谢谢

最佳答案

这尖叫全文索引

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

关于mysql - 在mysql中选择带有空格的记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35707368/

10-11 11:16