我想这个查询:Mysql的比赛,对没有返回正确的结果
SELECT * FROM `table_name` WHERE MATCH(`field_name`)
AGAINST('+san +city' IN BOOLEAN MODE)
我想应该包含SAN城市的所有记录,但结果是不同的。结果得到所有包含“珠江城,盐湖城等”的“城市”记录。 我做错了什么。
我想这个查询:Mysql的比赛,对没有返回正确的结果
SELECT * FROM `table_name` WHERE MATCH(`field_name`)
AGAINST('+san +city' IN BOOLEAN MODE)
我想应该包含SAN城市的所有记录,但结果是不同的。结果得到所有包含“珠江城,盐湖城等”的“城市”记录。 我做错了什么。
尝试在SELECT
-part查询的加入比赛获得关于MySQL如何在这里工作一握:
SELECT *, MATCH(field_name) AGAINST('+san +city' IN BOOLEAN MODE)
FROM table_name
WHERE MATCH(field_name) AGAINST('+san +city' IN BOOLEAN MODE)
你会看到在此列的优先级。
请记住,你的结果,如果你正在使用MyISAM和MySQL的< 5.6或InnoDB和MySQL的=> 5.6不同。关于它的Here's a good article。
那么它是一个全文检索,这就是为什么它显示了所有城市的结果。如果只想搜索“圣城”结果,为什么不使用like子句? – Neo 2013-04-10 06:45:33