Heim >Datenbank >MySQL-Tutorial >Wie sortiere ich MySQL-Ergebnisse mit NULL-Werten zuletzt?

Wie sortiere ich MySQL-Ergebnisse mit NULL-Werten zuletzt?

Linda Hamilton
Linda HamiltonOriginal
2024-12-09 00:29:09978Durchsuche

How to Sort MySQL Results with NULL Values Last?

So ordnen Sie MySQL-Ergebnisse mit Nullwerten zuletzt an

Beim Sortieren von MySQL-Ergebnissen mit einer numerischen Spalte können Nullwerte ohnehin schon problematisch sein als Null behandelt. Dies kann zu einer unerwarteten Reihenfolge führen, bei der Nullwerte vor Nicht-Nullwerten erscheinen.

Um dieses Problem zu beheben, bietet MySQL eine undokumentierte Syntax, die es Ihnen ermöglicht, Nullwerte zuletzt zu sortieren. Dies wird erreicht, indem vor dem Spaltennamen ein Minuszeichen (-) platziert und ASC auf DESC umgestellt wird:

SELECT * FROM tablename WHERE visible=1 ORDER BY -position DESC, id DESC

Diese Syntax kehrt im Wesentlichen die Position DESC-Reihenfolge um, indem Nullwerte an letzter Stelle platziert werden, während die gleiche Reihenfolge für beibehalten wird Nicht-Null-Werte.

Zum Beispiel, wenn Sie die folgenden Daten haben:

NULL, NULL, NULL, 1, 2, 3, 4

Verwenden der Standardposition ORDER BY ASC, id DESC-Anweisung würde zu Folgendem führen:

NULL, NULL, NULL, 1, 2, 3, 4

Die Verwendung der -position DESC-Syntax würde jedoch die gewünschte Reihenfolge erzeugen:

1, 2, 3, 4, NULL, NULL, NULL

Diese undokumentierte Syntax bietet eine praktische Möglichkeit, dies sicherzustellen dass Nullwerte in MySQL-Ergebnissen zuletzt sortiert werden. Es ist wichtig zu beachten, dass dies keine Standard-SQL-Funktion ist und möglicherweise nicht in allen Datenbanksystemen unterstützt wird.

Das obige ist der detaillierte Inhalt vonWie sortiere ich MySQL-Ergebnisse mit NULL-Werten zuletzt?. 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