ホームページ > データベース > mysql チュートリアル > SQL の IN() 句を使用するときに順序を維持するにはどうすればよいですか?

SQL の IN() 句を使用するときに順序を維持するにはどうすればよいですか?

DDD
リリース: 2025-01-20 14:53:08
オリジナル
276 人が閲覧しました

How Can I Preserve Ordering When Using SQL's IN() Clause?

SQL IN() 句を使用して順序を維持します

結果を並べ替える場合、結果を IN() 句で指定された値の順序と一致させるのが困難な場合があります。この問題はサブクエリまたは一時テーブルを使用して解決できますが、より効率的な解決策はありますか?

MySQL では、FIELD() 関数が実行可能なオプションを提供します。 FIELD() 関数を利用すると、IN() 句の値の順序に基づいて並べ替えを直接操作できます。

<code class="language-sql">SELECT name, description, ...
FROM ...
WHERE id IN([ids, 无序])
ORDER BY FIELD(id, [ids, 有序])</code>
ログイン後にコピー

FIELD() 関数は、最初の引数として渡された値の提供されたリスト内のインデックスを決定します。返されるインデックスは、リスト内の値の順序を表します。

例:

<code class="language-sql">FIELD('a', 'a', 'b', 'c')  -- 返回 1
FIELD('a', 'c', 'b', 'a')  -- 返回 3</code>
ログイン後にコピー

FIELD() 関数を使用し、IN() 句と FIELD() 関数内の値の対応する順序を維持することにより、結果の順序を目的の順序と効果的に一致させることができます。

以上がSQL の IN() 句を使用するときに順序を維持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート