我正在尝试这个查询:
SELECT * FROM `table_name` WHERE MATCH(`field_name`)
AGAINST('+san +city' IN BOOLEAN MODE)
我想获取所有应包含 san city 的记录,但结果不同。结果我得到了所有包含“城市”的记录,比如“珍珠城、盐湖城等”。我做错了什么。
我正在尝试这个查询:
SELECT * FROM `table_name` WHERE MATCH(`field_name`)
AGAINST('+san +city' IN BOOLEAN MODE)
我想获取所有应包含 san city 的记录,但结果不同。结果我得到了所有包含“城市”的记录,比如“珍珠城、盐湖城等”。我做错了什么。
SELECT
尝试在查询的 -part 中添加 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,您的结果会有所不同。这是一篇关于它的好文章。