我有一个全文查询,如果我使用2个单词,似乎可以解决拼写错误,但是如果我只使用一个单词,则无法解决
我有一个带有全名字段的表
在表格“ Nile Rodgers”,“ Bam Rogers”,“ Catherine Wyn Rogers”,“ Nigel Rogers”中
我的查询
SELECT *
FROM people
WHERE MATCH (fullname) AGAINST ('myquerytext' IN NATURAL LANGUAGE MODE)
如果我搜索“ Rodgers”,我会发现“ Nile Rodgers”
如果我搜索“ Rogers”,我会发现“ Bam Rogers”,“ Catherine Wyn Rogers”,“ Nigel Rogers”,而不是“ Nile Rodgers”
如果我搜索“尼罗河罗杰斯”,我会喜欢“尼罗河罗杰斯”,“班·罗杰斯”,“凯瑟琳·温·罗杰斯”,“奈杰尔·罗杰斯”
是否可以调整公差?
答案 0 :(得分:0)
您的问题是它会搜索 Nile 或 Rogers ,因此您得到的结果是合乎逻辑的。
如果要使用所有单词而不是其中的任何单词,请使用 BOOLEAN MODE (布尔模式)并在每个单词前面添加一个+
:
SELECT *
FROM people
WHERE MATCH (fullname) AGAINST ('+Nile +Rogers' IN BOOLEAN MODE)
12.9.2布尔型全文本搜索
在实现此功能时,MySQL使用有时称为的功能 作为隐含的布尔逻辑,其中
•+代表AND
•-代表NOT
•[no operator]表示OR