0

私はこのクエリを試しています:

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

san city が含まれているはずのすべてのレコードを取得したいのですが、結果が異なります。その結果、「パールシティ、ソルトレイクシティなど」のような「都市」を含むすべてのレコードを取得しています。私が間違っていること。

4

1 に答える 1

2

クエリの - 部分にMATCH を追加して、SELECTMySQL がここでどのように機能するかを把握してみてください。

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 に答える