下面是我坚持使用的一个示例sql,它不会返回名为“iphone 4s”的产品,它返回10个其他结果。任何帮助都会非常感谢
SELECT * FROM products
WHERE match(desc) against('+iphone +4s' IN BOOLEAN MODE) LIMIT 10";
结果:包含“iphone”和“4s”字样
SELECT * FROM products
WHERE match(desc) against('+iphone 4s' IN BOOLEAN MODE) LIMIT 10";
结果:包含“iphone”字样,但如果它们也包含“4s”
,则排名更高SELECT * FROM products
WHERE match(desc) against('iphone 4s' IN BOOLEAN MODE) LIMIT 10";
结果:包含“iphone”或“4s”字样
我想要搜索的是'iphone 4s',但它带有其他结果,例如'iphone很好,但4s ......','新iphone 5已发布......',...
任何人都可以帮我解决吗?感谢。
答案 0 :(得分:16)
要匹配精确的词组,只需使用双引号括起要匹配的词组;
SELECT *
FROM products
WHERE MATCH(desc)
AGAINST('"iphone 4s"' IN BOOLEAN MODE)
LIMIT 10
答案 1 :(得分:0)