Heim >Datenbank >MySQL-Tutorial >Wie kann ich dafür sorgen, dass NULL-Werte beim Bestellen von Daten in MySQL zuletzt angezeigt werden?

Wie kann ich dafür sorgen, dass NULL-Werte beim Bestellen von Daten in MySQL zuletzt angezeigt werden?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-15 05:07:17450Durchsuche

How Can I Make NULL Values Appear Last When Ordering Data in MySQL?

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!

Stellungnahme:
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