Heim > Datenbank > MySQL-Tutorial > Behält „UNION ALL' die Reihenfolge der Zeilen in SQL-Ergebnissätzen bei?

Behält „UNION ALL' die Reihenfolge der Zeilen in SQL-Ergebnissätzen bei?

Linda Hamilton
Freigeben: 2024-12-31 00:24:09
Original
272 Leute haben es durchsucht

Does `UNION ALL` Preserve the Order of Rows in SQL Result Sets?

Garantiert UNION ALL die Reihenfolge in Ergebnismengen?

In SQL kombiniert der UNION ALL-Operator die Ergebnisse mehrerer SELECT-Anweisungen. Es ist jedoch keine Garantie für die Reihenfolge der Ergebnisse. Ohne eine ORDER BY-Klausel ist die Reihenfolge der Zeilen undefiniert und kann variieren.

Betrachten Sie das in der Frage bereitgestellte Beispiel:

SELECT 'O'
UNION ALL
SELECT 'R'
UNION ALL
SELECT 'D'
UNION ALL
SELECT 'E'
UNION ALL
SELECT 'R'
Nach dem Login kopieren

Es ist möglich, dass die Ergebnisse anders sind in der Reihenfolge „O-R-D-E-R“ angezeigt werden, es gibt jedoch keine Garantie. Die Reihenfolge kann abhängig von Faktoren wie der Datenbank-Engine, der Datenverteilung und anderen Optimierungen unterschiedlich sein.

Um eine bestimmte Reihenfolge durchzusetzen, muss eine ORDER BY-Klausel verwendet werden. Für das gegebene Beispiel kann die SortOrder-Spalte zu jeder SELECT-Anweisung hinzugefügt werden:

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
Nach dem Login kopieren

Diese Abfrage sortiert die Ergebnisse explizit in der Reihenfolge „O-R-D-E-R“. Bitte beachten Sie, dass das Hinzufügen der Spalte „SortOrder“ nur erforderlich ist, wenn die gewünschte Reihenfolge von der Standardreihenfolge abweicht (die in diesem Fall undefiniert ist).

Das obige ist der detaillierte Inhalt vonBehält „UNION ALL' die Reihenfolge der Zeilen in SQL-Ergebnissätzen bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage