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

IN リスト内の値の順序と一致するように SQL 結果を並べ替えるにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-19 11:11:10
オリジナル
424 人が閲覧しました

How Can I Order SQL Results to Match the Order of Values in an IN List?

結果をINリスト順に並べます

SQL の一般的なシナリオは、IN 演算子を使用して、指定された値のセットに基づいてデータを取得することです。この場合、結果を IN リストの順序で並べ替えることができます。

8.4 より前のバージョンの PostgreSQL では、この並べ替えを実現する 1 つの方法は、相関サブクエリを使用することでした。ただし、8.2 以降では、より効率的なアプローチが利用可能です:

VALUES 関数

PostgreSQL はバージョン 8.2 で VALUES 関数を導入し、メモリ内テーブルの作成を可能にしました。この関数を使用すると、必要な順序の値を含む一時テーブルを構築できます:

<code class="language-sql">select c.*
from comments c
join (
  values
    (1,1),
    (3,2),
    (2,3),
    (4,4)
) as x (id, ordering) on c.id = x.id
order by x.ordering</code>
ログイン後にコピー

このクエリ内:

  • VALUES 関数は、「id」と「ordering」の 2 つの列を含む「x」という名前の一時テーブルを作成します。
  • 「id」列には、IN 句で指定された値が含まれます。
  • 「順序付け」列は、各値に数値の順序を割り当て、結果の望ましい配置を保証します。
  • 一時テーブル「x」は、共通の「id」列に基づいて「comments」テーブルと結合されます。
  • 最後に、結果が「順序」列によって並べ替えられ、希望するコメントの順序が生成されます。

以上がIN リスト内の値の順序と一致するように SQL 結果を並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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