ホームページ > データベース > mysql チュートリアル > SQL UNION からの結果を適切に並べ替えるにはどうすればよいですか?

SQL UNION からの結果を適切に並べ替えるにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-11 06:03:42
オリジナル
472 人が閲覧しました

How to Properly Order Results from a SQL UNION?

SQL での UNION とソート

SQL では、UNION 演算子を使用して、複数の SELECT ステートメントを 1 つの結果セットに結合できます。ただし、各 SELECT ステートメントが異なるデータを返す可能性がある場合、結合されたデータの並べ替えは困難になることがあります。

2 つの基準に基づいて Student テーブルからデータを取得する次のクエリについて考えてみましょう:

<code class="language-sql">SELECT id, name, age
FROM Student
WHERE age > 20
UNION
SELECT id, name, age
FROM Student
WHERE Name LIKE "%a%";</code>
ログイン後にコピー

結合された結果セットを名前列で並べ替えたいと考えています。残念ながら、次のクエリは期待どおりに機能しません:

<code class="language-sql">SELECT id, name, age
FROM Student
WHERE age > 20
ORDER BY name;</code>
ログイン後にコピー

このクエリでは、ORDER BY 句が UNION の完全な結果セットではなく、WHERE 条件の結合結果に適用されます。したがって、データは並べ替えられません。

結合された結果セットを名前で並べ替えるには、単に ORDER BY 句を UNION 演算子の外側に移動します。

<code class="language-sql">SELECT id, name, age
FROM Student
WHERE age > 20
UNION
SELECT id, name, age
FROM Student
WHERE Name LIKE "%a%"
ORDER BY name;</code>
ログイン後にコピー

この変更されたクエリでは、ORDER BY 句が完全な結果セットに適用され、結合されたデータが正しく並べ替えられるようになります。

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

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