当我搜索:
SELECT * FROM db.test
WHERE
MATCH(story)AGAINST('(+bananas -banana*)'IN BOOLEAN MODE)
我返回了行但是当我搜索
时SELECT * FROM db.test
WHERE
MATCH(story)AGAINST('(+bananas -bananas)'IN BOOLEAN MODE)
或
SELECT * FROM db.test
WHERE
MATCH(story)AGAINST('(+bananas -bananas*)'IN BOOLEAN MODE)
我没有结果。对我来说,似乎你不能与减号一起使用*。 有没有人知道是否是这种情况,或者它是否是MySql中的设置。
亲切的问候 欧莱
该表是MYISAM,我有一个关于专栏故事的索引。
答案 0 :(得分:1)
最后2个查询没有给出任何结果,因为它们包含矛盾的条件 - 故事必须有“香蕉”这个词,而且不能有“香蕉”这个词。这是不可能的,因此没有结果。
然而,第一个查询意味着“香蕉”必须存在,但没有“香蕉”。
此外,您可以使用*和减号运算符。
希望这有帮助。
答案 1 :(得分:0)
解决方案是跳过括号。如果我搜索'+ bananas -banana *'而不是'(+ bananas -banana *)'它可以工作。你花了一段时间才弄明白。
干杯