MySQL の "IN" 句の値による結果の並べ替え
MySQL の "IN" 句ステートメントでは、結果は通常、秩序のないやり方。ただし、句で指定された値に基づいて結果を並べ替える方法があります。
FIELD() 関数の使用
1 つの方法は、FIELD() を使用することです。 ) 関数。リスト内の指定された値の位置を返します。この機能を利用すると、結果を手動で希望の順序に並べ替えることができます。構文は次のとおりです。
ORDER BY FIELD(column, value1, value2, ..., valueN)
例
次の例を考えてみましょう。
SELECT * FROM account_records WHERE id IN (5,2,6,8,12,1) ORDER BY FIELD(id,5,2,6,8,12,1);
このクエリでは、結果は次のようになります。 FIELD() 関数の引数 (「IN」句の値) で指定された順序で返されます。
または、一時テーブルを使用する
前述のとおり、目的の並べ替えを実現するために一時テーブルを作成することも検討できます。この手順には次のものが含まれます:
このアプローチはより汎用性の高いソリューションを提供できますが、単純な目的で FIELD() 関数を使用する場合に比べて効率が低くなります。並べ替え要件。
以上がMySQL の「IN」句で結果を並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。