Varchar-Felder numerisch in MySQL sortieren: Die CAST-Funktion
In bestimmten Szenarien kann ein MySQL-Varchar-Feld ganzzahlige Werte mit führenden Nullen enthalten. Dies führt dazu, dass die lexikografische Sortierung von der gewünschten numerischen Reihenfolge abweicht. Um dieses Problem zu lösen, bietet die CAST-Funktion eine Lösung.
Problem:
Stellen Sie sich eine Tabelle mit einem Feld namens „number“ vom Typ varchar vor, in dem ganzzahlige Werte gespeichert werden. Trotz seines Datentyps enthält „Zahl“ Werte wie „009“ und „042“. Beim Sortieren mit der folgenden Abfrage:
SELECT * FROM table ORDER BY number ASC
Das Ergebnis wäre:
number 009 042 9
Lösung:
Um nach numerischen Werten zu sortieren, MySQL stellt die CAST-Funktion bereit. Durch die Umwandlung des Varchar-Felds in eine vorzeichenbehaftete Ganzzahl werden die führenden Nullen ignoriert, was zu einer korrekten numerischen Reihenfolge führt.
Die geänderte Abfrage mit der CAST-Funktion:
SELECT * FROM table ORDER BY CAST(number AS SIGNED INTEGER) ASC
Ergibt nun das Gewünschte Sortierung:
number 9 009 042
Das obige ist der detaillierte Inhalt vonWie kann ich VARCHAR-Felder in MySQL numerisch sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!