Beibehaltung von Nullwerten bei der MySQL-Reihenfolge
In MySQL kann das Sortieren von Daten mit Nullwerten eine Herausforderung darstellen, da Nullwerte von als 0 behandelt werden Standard. Dies kann zu unbeabsichtigtem Sortierverhalten führen, bei dem Nullwerte vor Nicht-Nullwerten erscheinen. Um dieses Problem zu beheben, können wir eine weniger bekannte Syntax verwenden, um zu erzwingen, dass Nullwerte in den sortierten Ergebnissen an letzter Stelle erscheinen.
Nullsortierung umkehren
MySQL bietet eine undokumentierte Option Syntax, die das Umkehren der Sortierreihenfolge von Nullwerten ermöglicht. Indem wir dem Spaltennamen ein Minuszeichen (-) voranstellen und ASC auf DESC umstellen, können wir MySQL anweisen, Nullen als höchste Werte in der Sortierreihenfolge zu behandeln.
Betrachten Sie beispielsweise die folgende ORDER BY-Klausel :
ORDER BY -position DESC, id DESC
Diese Klausel sortiert die Positionsspalte in absteigender Reihenfolge, wobei Nullwerte zuletzt erscheinen. Die ID-Spalte wird weiterhin in absteigender Reihenfolge sortiert.
Beispiel
Angenommen, wir haben eine Tabelle mit den folgenden Daten:
| position | id | |---|---| | null | 10 | | null | 11 | | null | 12 | | 1 | 1 | | 2 | 2 | | 3 | 3 | | 4 | 4 |
Verwendet Mit einer herkömmlichen ORDER BY-Klausel (Position ASC, ID DESC) würden die Ergebnisse wie folgt geordnet werden folgt:
| position | id | |---|---| | 1 | 1 | | 2 | 2 | | 3 | 3 | | 4 | 4 | | null | 12 | | null | 11 | | null | 10 |
Durch die Verwendung der umgekehrten Nullsortierungssyntax (-position DESC, id DESC) können wir jedoch die gewünschte Reihenfolge erreichen, in der Nullwerte zuletzt erscheinen:
| position | id | |---|---| | 1 | 1 | | 2 | 2 | | 3 | 3 | | 4 | 4 | | null | 10 | | null | 11 | | null | 12 |
Hinweis:
Diese Technik ist nicht dokumentiert und wird möglicherweise nicht in allen MySQL-Versionen unterstützt. Konsultieren Sie die MySQL-Dokumentation für Ihre spezifische Version, um die Kompatibilität sicherzustellen.
Das obige ist der detaillierte Inhalt vonWie kann ich dafür sorgen, dass NULL-Werte beim Bestellen von Daten in MySQL zuletzt angezeigt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!