SQL の MATCH/AGAINST 機能を使用したクエリで語順がカウントされるのはいつですか?
次のコードを使用して、名前が Palwinder Singh に似ている人を探しているとします。
SELECT DISTINCT id,name,surname FROM person
WHERE MATCH(name,surname)
AGAINST('+Palwinder+Singh' IN BOOLEAN MODE)
このコードは、Palwinder Singh という人物 (私のデータベースではたまたまユニークな人物) に関連する情報を正しく返します (これは予想される結果です)。
ただし、次のコードを使用すると:
SELECT DISTINCT id,name,surname FROM person
WHERE MATCH(name,surname)
AGAINST('+Singh+Palwinder' IN BOOLEAN MODE)
Palwinder Singh を探しているという事実を無視しているように見えますが、姓が「Singh」のすべてのプレイヤー (合計 22 人) のリストを取得します。
なぜ結果が違うのかわかりませんか?単語の順序に関係なくクエリを取得するにはどうすればよいですか?