MYSQL UNION BESTELLUNG

8

Ist es möglich, die erste Anfrage zu bestellen und die zurückgegebenen Zeilen als erste zu behalten und die zweite Anfrage nicht zu bestellen. (Wenn das Sinn macht)

Ein Beispiel meiner aktuellen Anfrage ist:

%Vor%

Ich hatte gehofft, dass die Geräte unter der Kategorie apple in der Reihenfolge der Listen organisiert wären und an der Spitze der Liste über den anderen Geräten stehen würden. Aber das scheint die zwei Fragen zusammen zu durcheinander zu bringen.

    
Yardstermister 24.11.2010, 14:10
quelle

4 Antworten

15

Sie müssten einen künstlichen Sortierschlüssel einführen. Etwas wie:

%Vor%     
Joe Stefanelli 24.11.2010, 14:15
quelle
2

UNION hat eine implizite Deduplizierungsfunktion. Dies bedeutet, dass ein Nebeneffekt der Verwendung es ist, wird alles zusammengewürfelt, wie es für das passieren sortiert ist. Es bedeutet auch (normalerweise, aber nicht immer), dass Sie eine sortierte Ausgabe erhalten (siehe nächster Absatz).

UNION ALL entfernt dies, aber es gibt immer noch den Vorbehalt, dass die Ausgabe einer Abfrage ohne eine explizite order by keine garantierte Reihenfolge hat. Dies wurde durch eine andere Antwort abgedeckt, aber ich hielt es für sinnvoll, darauf hinzuweisen, warum es wichtig ist.

    
Donnie 24.11.2010 14:22
quelle
2

Sie könnten es vortäuschen

%Vor%

(ungeprüfter SQL-Befehl von meinem Kopf)

    
Tony 24.11.2010 14:16
quelle
0

Ich habe meine Antwort von Joe Stefanelli bekommen, aber ich habe es etwas modifiziert:

hi, ich brauchte keinen künstlichen Sortierschlüssel, ich stellte nur sicher, dass jeder Tisch den gleichen Namen hatte wie die Spalte, nach der ich sortieren wollte. In meinem Fall war der Spaltenname "Bestellung". Also habe ich:

%Vor%     
Paul Preibisch 09.05.2014 16:37
quelle

Tags und Links