Heim >Datenbank >MySQL-Tutorial >Wie ordne ich in MySQL nach einer Zahl und platziere NULL-Werte an letzter Stelle?

Wie ordne ich in MySQL nach einer Zahl und platziere NULL-Werte an letzter Stelle?

Susan Sarandon
Susan SarandonOriginal
2024-12-27 20:18:10292Durchsuche

How to Order by a Number and Place NULLs Last in MySQL?

MySQL: Sortieren nach einer Zahl und Nullen als letztes

In SQL-Abfragen kann das Sortieren von Daten nach einem numerischen Feld unkompliziert sein. Allerdings erfordert die Verwaltung von Nullwerten in solchen Szenarios sorgfältige Überlegungen. In MySQL werden Nullwerte bei der Reihenfolge mit ASC oder DESC standardmäßig als 0 behandelt, was zu unerwünschten Ergebnissen führen kann.

Um dieses Problem zu beheben, bietet MySQL eine unkonventionelle Syntax, um Nullwerte in einer Reihenfolge an letzter Stelle zu priorisieren Klausel. Indem Sie ein Minuszeichen (-) vor den Spaltennamen setzen und die Reihenfolge umkehren (ASC zu DESC oder umgekehrt), können Sie das Sortierverhalten für Nullen effektiv umkehren.

Wenn Sie beispielsweise a sortieren möchten Wenn Sie die Spalte mit dem Namen „Position“ in aufsteigender Reihenfolge erstellen (außer bei Nullwerten) und dann die Verbindungen mit „id“ in absteigender Reihenfolge aufheben, verwenden Sie die folgende Syntax:

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

Dies Die Reihenfolge führt zu der folgenden Reihenfolge:

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

Im Wesentlichen kehrt diese Syntax die Sortierung für die Spalte „Position“ um und platziert Nullwerte an letzter Stelle, während die gewünschte Reihenfolge für Nicht-Nullwerte beibehalten wird.

Denken Sie daran, dass diese Syntax nicht dokumentiert ist und möglicherweise nicht in allen Versionen von MySQL unterstützt wird. Darüber hinaus empfiehlt es sich immer, die Dokumentation sorgfältig zu lesen, bevor Sie erweiterte Sortiertechniken in Ihre Abfragen implementieren.

Das obige ist der detaillierte Inhalt vonWie ordne ich in MySQL nach einer Zahl und platziere NULL-Werte an letzter Stelle?. 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