我的MySQL表没有返回带有MATCH (col) AGAINST ('')
查询的结果。
表格很简单:
id | url | fullTextIndex
我的查询是
SELECT *, Match(fullTextIndex) AGAINST ("7f7f7f807f8080807f8080807f7f7f807c828888808a86967e8b858d7f89838a76829e958f7badb68084a3a38384899077848b877f799f9c85799fa2827d8c8a ") FROM Pictures;
最后一列(匹配)始终为0.除此之外,我知道上面的字符串是逐字包含在其中一个值中的事实。
注意事项:
INSTR
时,我得到值1(这是正确的)为什么这个查询可能不起作用的任何想法?
答案 0 :(得分:4)
对于用于索引的单词的长度似乎存在(可配置的)上限:
http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_ft_max_word_len
您可以使用SHOW VARIABLES LIKE "ft_max_word_len";
它在我的服务器上返回84,你的字符串是128个字符长。
建议修复:
将此行添加到my.cnf文件中:ft_max_word_len=128
(或您需要的最大长度)
按照MySQL网站上的建议重建索引:REPAIR TABLE tbl_name QUICK;