MySQL Select ステートメントの "IN" 句からの順序付けされた結果
"IN" 句を使用して特定のレコードに対して大きなテーブルをクエリする場合、デフォルトの結果の順序は一貫性がない可能性があります。 「IN」句の値と同じ順序で結果を取得するには、デフォルトの動作をオーバーライドする別のアプローチを検討する必要があります。
1 つのオプションは、FIELD 関数を利用することです。この関数は 2 つのパラメータを取ります。1 つ目は並べ替える列で、2 つ目は希望の並べ替え順序での値のカンマ区切りリストです。クエリに ORDER BY FIELD(column,values) 句を含めると、結果は値リストで指定された値の順序に従って並べられます。
たとえば、次のクエリは次の値を取得します。 「IN」句で指定された順序で ID を持つレコード:
SELECT * FROM your_table WHERE id IN (5,2,6,8,12,1) ORDER BY FIELD(id,5,2,6,8,12,1);
ここで、FIELD 関数は値の順序 (5、2、6、8、 12、1)。何百万行もの大規模なデータセットであっても、結果は指定された順序で返されます。
以上がMySQL で「IN」句から結果を並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。