MySQL の「IN」句の値の順序による結果の並べ替え
MySQL で、「IN」を使用して大きなテーブルからレコードを選択する句を使用すると、順序のない結果が得られることがよくあります。結果の順序が重要なシナリオでは、望ましい順序を実現するための回避策が必要です。
非効率的なアプローチ: 一時テーブル
当初、提案は作成することでした。 「IN」句の値を含む一時テーブルを作成し、結合操作を実行します。ただし、このアプローチは大規模なデータセットでは非効率的になる可能性があります。
効率的な解決策: FIELD() 関数
結合を使用する代わりに、FIELD() 関数は効率的な「IN」句の値に基づいて結果を並べ替える代わりに。 FIELD() 関数は 2 つの引数を取ります:
ORDER BY 句で FIELD() 関数を使用すると、「IN」句の値の順序に基づいて結果を並べ替えることができます。
<code class="sql">SELECT * FROM your_table WHERE id IN (5,2,6,8,12,1) ORDER BY FIELD(id,5,2,6,8,12,1);</code>
FIELD() 関数のドキュメント
FIELD() 関数の詳細については、MySQL ドキュメントを参照してください。
[MySQL FIELD() 関数]リファレンス](https://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_field)
以上がIN 句を使用して MySQL クエリ結果を値の順序で並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。