我用它来搜索我的表:
if ($querystring!=''){$query_cont .= " AND MATCH (headline) AGAINST ('$querystring')"; }
事实上,在'标题'字段中,我有一个值'宝马'。然后当我在搜索栏中输入BMW时,即“$ querystring ='BMW'”,没有找到结果。
我已将'headline'字段的索引设置为'fulltext',并使用简单的'INSERT INTO'语句将值插入该表。
请帮我解决这个问题......
如果您需要更多输入,请告诉我们!
答案 0 :(得分:3)
将您的ft_min_word_len
更改为3
或更低,然后重建您的索引。
短于ft_min_word_len
(默认情况下为4
)的字词不会被编入索引。
<强>更新强>
将这个强制性的 XKCD 漫画与包含像你这样的代码的问题挂钩,这被认为是一个好习惯:
答案 1 :(得分:2)
你必须知道两件事:
我怀疑其中一件事阻止你得到你期望的结果。
另外,请确保您的应用程序不受Sql injections
的保护答案 2 :(得分:2)
MySQL的全文索引器默认忽略三个字母的单词。要将3个字母的单词编入索引,您需要更改ft_min_word_len配置并重新索引列(有关更多信息,请参阅this question;还有比您预期更多的停用词)。
(您还需要使用mysql_real_escape_string或参数化查询来阻止上述代码成为SQL注入漏洞。)