下面是一个我坚持的sql示例,它不会返回一家名为"磨坊酒店"的酒店它会返回其他10家酒店.任何帮助都会非常感谢
SELECT * FROM tbl WHERE match(hotel) against('the mill hotel' IN BOOLEAN MODE) LIMIT 10";
Run Code Online (Sandbox Code Playgroud)
您需要指定运算符,因为未在OR运算中指定任何结果.试试这个:
SELECT * FROM tbl WHERE match(hotel) against('+the mill hotel' IN BOOLEAN MODE) LIMIT 10";
Run Code Online (Sandbox Code Playgroud)
您始终可以使用引号来匹配短语mill hotel而不是单词mill和/或hotel:
SELECT * FROM tbl WHERE match(hotel) against('"the mill hotel"' IN BOOLEAN MODE) LIMIT 10;
Run Code Online (Sandbox Code Playgroud)
或者,简单地说:
SELECT * FROM tbl WHERE match(hotel) against('"mill hotel"' IN BOOLEAN MODE) LIMIT 10;
Run Code Online (Sandbox Code Playgroud)
我相信所有
SELECT * FROM tbl WHERE match(hotel) against('+the mill hotel' IN BOOLEAN MODE) LIMIT 10;
Run Code Online (Sandbox Code Playgroud)
do 是要求单词the匹配,离开mill和hotel可选:如果你想要求整个短语,它需要用引号引起来:
SELECT * FROM tbl WHERE match(hotel) against('+"the mill hotel"' IN BOOLEAN MODE) LIMIT 10;
Run Code Online (Sandbox Code Playgroud)
尽管当您只有一个搜索词组时,如本例所示,加号是多余的。