Mysql匹配,反对没有返回正确的结果

时间:2013-04-10 06:38:27

标签: mysql

我正在尝试此查询:

SELECT * FROM `table_name` WHERE MATCH(`field_name`)
AGAINST('+san +city' IN BOOLEAN MODE)

我想获得应该包含san city的所有记录,但结果是不同的。结果我得到所有包含“城市”的记录,如“珍珠城,盐湖城等”。 我做错了什么。

1 个答案:

答案 0 :(得分:2)

尝试在SELECT中添加MATCH - 查询的一部分,以掌握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关于它。