Problem:
MySQL-Sortierroutinen liefern möglicherweise nicht die gewünschte Sortierreihenfolge für gespeicherte Versionsnummern als varbinary(300). Die Sortierung muss bis zu 20 Ziffern berücksichtigen und Ergebnisse wie die folgenden liefern:
1.1.2 1.2.3.4 2.2 3.2.1.4.2 3.2.14 4 9.1
Lösung:
Verwenden Sie die INET_ATON-Funktion mit der folgenden Abfrage:
SELECT version_number FROM table ORDER BY INET_ATON(SUBSTRING_INDEX(CONCAT(version_number,'.0.0.0'),'.',4))
Diese Technik nutzt die Fähigkeit von INET_ATON, IP-Adressen in Ganzzahlen umzuwandeln. Indem wir .0.0.0 an die Versionsnummer anhängen und nur die ersten vier Komponenten mit SUBSTRING_INDEX extrahieren, übersetzen wir die Versionsnummern effektiv in vergleichbare Ganzzahldarstellungen.
Zusätzliche Überlegungen:
Das obige ist der detaillierte Inhalt vonWie kann ich MySQL-Versionsnummern richtig sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!