Heim >Datenbank >MySQL-Tutorial >Wie kann ich VARCHAR-Zahlen in MySQL als Ganzzahlen sortieren?

Wie kann ich VARCHAR-Zahlen in MySQL als Ganzzahlen sortieren?

Barbara Streisand
Barbara StreisandOriginal
2025-01-12 18:36:47193Durchsuche

How Can I Sort VARCHAR Numbers as Integers in MySQL?

MySQL: VARCHAR-Spalten als Ganzzahlen sortieren

Datenbanken speichern Zahlen manchmal als Zeichenfolgen (VARCHAR), oft aufgrund von Legacy-Systemen oder externen Abhängigkeiten. Dies kann bei Standard-String-Vergleichen zu falschen Sortierergebnissen führen. So sortieren Sie diese Zahlen im String-Format in MySQL richtig:

Optimale Lösung: Datentypkonvertierung

Der beste Ansatz besteht darin, den Datentyp der Tabellenspalte in eine Ganzzahl (INT, BIGINT usw.) zu ändern. Dies gewährleistet eine ordnungsgemäße numerische Sortierung und vermeidet zukünftige Probleme.

Alternative Methoden (wenn eine Änderung des Datentyps nicht möglich ist):

  1. Explizites Casting: Verwenden Sie die Funktion CAST(), um die VARCHAR-Werte vor dem Sortieren explizit in Ganzzahlen umzuwandeln:
<code class="language-sql">SELECT col FROM yourtable ORDER BY CAST(col AS UNSIGNED);</code>

Dadurch wird MySQL gezwungen, die Werte während des Sortiervorgangs numerisch zu behandeln. UNSIGNED verhindert die Interpretation negativer Zahlen.

  1. Implizite Konvertierung: Fügen Sie eine numerische Konstante (wie 0) hinzu, um die Zeichenfolgenwerte implizit in Zahlen umzuwandeln:
<code class="language-sql">SELECT col FROM yourtable ORDER BY col + 0;</code>

MySQL versucht, die Zeichenfolge als Zahl für die Additionsoperation zu interpretieren, wodurch die implizite Konvertierung ausgelöst wird.

  1. MySQLs Verhalten bei der Konvertierung von Zeichenfolgen in Zahlen: Denken Sie daran, dass MySQL Zeichenfolgen von links nach rechts in Zahlen umwandelt. Es wird nur der anfängliche numerische Teil der Zeichenfolge berücksichtigt.
String Value Integer Value
'1' 1
'ABC' 0
'123miles' 123
'3' 0

Nicht-numerische Zeichen führen zu einem 0-Wert. Führende nicht numerische Zeichen führen dazu, dass die gesamte Konvertierung fehlschlägt.

Das obige ist der detaillierte Inhalt vonWie kann ich VARCHAR-Zahlen in MySQL als Ganzzahlen sortieren?. 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