我有一列包含许多记录,这些记录具有一个共同的词(例如,频道名称):
| 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/