我有这个搜索查询:
SELECT id, MATCH(names) AGAINST('Tom Smith') AS score FROM content WHERE MATCH(names) AGAINST('Tom Smith') ORDER BY SCORE DESC
它返回246行,其中包含'Tom Smith', 'Tom (any initial) Smith', 'Tom' or 'Smith'
。
有没有一种方法让查询返回仅包含“汤姆·史密斯”,“汤姆·史密斯”,“汤姆·罗伯·史密斯”等的行?
基本上,必须包含Tom AND Smith的行,而不是仅包含“ Tom”或“ smith”的行吗?
但是,我不仅希望只包含“ Tom Smith”的行,而且还包含“ Tom(任何单词)Smith”的行也可以。
我想这是可能的,但是,我很难获得也包含“汤姆(任何单词)史密斯”标准的结果。
答案 0 :(得分:0)
有时候,我的大脑不能很好地工作:)忘记了布尔模式
SELECT id, MATCH(names) AGAINST('+Tom +Smith' IN BOOLEAN MODE ) AS score FROM content WHERE MATCH(names)
AGAINST('+Tom +Smith' IN BOOLEAN MODE ) ORDER BY SCORE DESC