我在我的 MySQL 数据库中使用 Match Against 时遇到问题,我希望有人能提供帮助。
这是我数据库中数据的示例:
id name
1 really bitter chocolate
2 soft cheese
当我运行此查询时:
SELECT * FROM food WHERE (name) LIKE "%bitter%"
这带回了第一个结果:
1 really bitter chocolate
然而,它是更大查询的一部分,当我运行 Match Against 代码时,我没有从这些查询中得到任何返回:
SELECT * FROM food WHERE MATCH (name) AGAINST ("bitter")
SELECT * FROM food WHERE MATCH (name) AGAINST ("bitter", IN BOOLEAN MODE)
我打开了全文搜索,当我搜索名称的开头时它可以工作:
SELECT * FROM food WHERE MATCH (name) AGAINST ("really")
SELECT * FROM food WHERE MATCH (name) AGAINST ("really", IN BOOLEAN MODE)
两者都返回:
1 really bitter chocolate
我已通读此解决方案:http ://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html
我看过这里:mysql WHERE MATCH AGAINST
有人可以看看我哪里出错或指出我正确的方向吗?
谢谢!
编辑
好的,根据下面的 Woot4Moo 很好的答案,我已经更改了我的代码以删除不应该存在的逗号。我还添加了 + 并将其放在单引号中,但仍然没有运气。
我当前的查询现在看起来像这样:
SELECT * FROM food WHERE MATCH (name) AGAINST ('+bitter' IN BOOLEAN MODE)
但它在查询浏览器中没有返回任何结果,也没有返回任何错误或警告。