我正在尝试此查询:
SELECT * FROM `table_name` WHERE MATCH(`field_name`)
AGAINST('+san +city' IN BOOLEAN MODE)
我想获得应该包含san city的所有记录,但结果是不同的。结果我得到所有包含“城市”的记录,如“珍珠城,盐湖城等”。 我做错了什么。
答案 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关于它。