在包含单词ddi
的全文索引字段中。现在我正在使用 MATCH() 函数搜索该单词,如下所示,但它返回 0 条记录:
SELECT * FROM `tbl_xxx`
WHERE MATCH(`full_content`) AGAINST ('ddi' IN NATURAL LANGUAGE MODE);
-- RETURNING 0 RECORDS :(
但是当我使用 INSTR() 函数搜索时,它会返回 1 条记录
SELECT * FROM `tbl_xxx`
WHERE INSTR(`full_content`, 'ddi')
-- RETURNS 1 RECORD :)
为什么使用 INSTR() 返回 1 条记录,但不使用 MATCH()。
表tbl_xxx
的引擎类型= MyISAM,字段full_content
使用FULLTEXT进行索引
最佳答案
MySQL 中的全文搜索功能有最小字长限制。您的值可能设置为大于三。您可以在 my.cnf 文件中配置它,如下所示:
[mysqld]
ft_min_word_len=3
有关更多信息,请查看MySQL manual .
关于MySQL:使用 MATCH 和 INSTR 搜索全文索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21604214/