UNION ALL クエリの順序保証
データベース システムでは、UNION ALL 演算子は複数のクエリの結果を 1 つの結果セットに結合します。ただし、UNION ALL が結果セットの順序を保証するかどうかを理解することが重要です。
次の例を考えてみましょう:
SELECT 'O' UNION ALL SELECT 'R' UNION ALL SELECT 'D' UNION ALL SELECT 'E' UNION ALL SELECT 'R'
結果セットは常に " としてソートされるのかという疑問が生じます。注文"?答えは「いいえ」です。UNION ALL によって保証される固有の順序はありません。
これを証明するために、データベース エンジンが次のように内部的にクエリを実行するシナリオを考えてみましょう。
この場合、結果セットは「O-D-R-E-R」として表示されます。これは、
特定の順序を保証するには、ORDER BY 句をクエリ。例:
SELECT 'O', 1 SortOrder UNION ALL SELECT 'R', 2 UNION ALL SELECT 'D', 3 UNION ALL SELECT 'E', 4 UNION ALL SELECT 'R', 5 ORDER BY SortOrder
SortOrder フィールドを追加し、ORDER BY 句を含めることにより、結果が表示される順序を明示的に指定します。
以上がUNION ALL は SQL クエリでの結果セットの順序を保証しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。