MySQL で SELECT ステートメントの "IN" 句の値の順序で結果を並べ替える方法
SELECT ステートメントの「IN」句を使用すると、結果として得られる行の順序が句で指定された値の順序と一致せず、結果が順序付けされていないままになる場合があります。これを解決するための一般的なアプローチは、一時テーブルを確立し、結合操作を使用することです。ただし、より簡単で効率的な解決策があります。
FIELD() 関数を使用すると、「IN」句自体内で希望の並べ替え順序を指定できます。この関数は、指定された引数のリストに対して値を評価し、一致する最初の引数の位置を返します。引数を希望の順序で並べ替えることで、「IN」句の値に基づいて結果を効果的に並べ替えることができます。
たとえば、次の SELECT ステートメントを考えてみます。
<code class="sql">SELECT * FROM your_table WHERE id IN (5,2,6,8,12,1);</code>
「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( ) 関数を使用すると、結果はその正確な順序で返されます。これにより、一時テーブルと結合の必要性がなくなり、「IN」句の値に基づいて結果を並べ替える、よりシンプルかつ効率的なソリューションが提供されます。
以上がMySQL の「IN」句の値の順序で結果を並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。