私はこのクエリを試しています:
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 が含まれているはずのすべてのレコードを取得したいのですが、結果が異なります。その結果、「パールシティ、ソルトレイクシティなど」のような「都市」を含むすべてのレコードを取得しています。私が間違っていること。
クエリの - 部分にMATCH を追加して、SELECT
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 を使用している場合は、結果が異なることに注意してください。ここにそれについての良い記事があります。