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
Freigeben: 2025-01-12 18:36:47
Original
138 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage