0

我正在尝试这个查询:

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

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

4

1 回答 1

2

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,您的结果会有所不同。这是一篇关于它的好文章

于 2013-04-10T06:43:59.797 回答