ホームページ >データベース >mysql チュートリアル >MySQL の「IN」句の値の順序で結果を並べ替えるにはどうすればよいですか?

MySQL の「IN」句の値の順序で結果を並べ替えるにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-04 05:15:29916ブラウズ

How to Sort Results by Order of Values in an

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。