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!