Heim  >  Artikel  >  Datenbank  >  MySQL Advanced (8) So sortieren Sie den Varchar-Typ

MySQL Advanced (8) So sortieren Sie den Varchar-Typ

黄舟
黄舟Original
2017-02-09 15:27:491414Durchsuche

So sortieren Sie Varchar-Typen in MySQL

asc upgrade

absteigende absteigende Reihenfolge

In MySQL werden in der Standardreihenfolge nur Zahlen und Datumstypen sortiert, bei Varchar jedoch nicht Die Sortierung nach Zeichentypen scheint nutzlos zu sein. Jetzt werde ich Ihnen vorstellen, wie Sie das Problem der Sortierung nach Varchar-Typen lösen können.

Ich habe heute beim Sortieren der nationalen Telefonnummerntabelle ein interessantes Problem entdeckt. Ich wollte, dass das ISD-Code-Feld von klein nach groß sortiert wird, also habe ich es so geschrieben

SELECT * FROM gb_country_isdcode ORDER BY isdcode asc

Das Ergebnis ist wie folgt. Ich habe festgestellt, dass die ASC-Sortierung nicht korrekt war, also habe ich gesucht und gesucht und schließlich den Grund gefunden: Für den Varcher-Typ. Es ist offensichtlich nicht möglich, asc direkt zum Sortieren zu verwenden. Es muss dann in den Typ int konvertiert werden und kann dann normal sortiert werden >
Es scheint, dass die gewünschte Datenmenge relativ groß ist. . Aber warum ist +0 gut? Es stellt sich heraus, dass nach +0 der INT-Typ in Sortierung umgewandelt wird. Auf diese Weise können Sie nach Größe sortieren.

Was ist, wenn es sich nicht um eine Telefonnummer, sondern um ein chinesisches Schriftzeichen handelt? Wir müssen nur eine einfache Konvertierung durchführen, um die chinesischen Schriftzeichen zu sortieren.

Verwenden Sie „Ordnung nach“ in MySQL, um Felder zu koppeln, die chinesische Informationen speichern. Die Standardergebnisse sind nicht in der Reihenfolge der chinesischen Pinyin sortiert. Wenn Sie nach der Pinyin-Reihenfolge der chinesischen Zeichen sortieren möchten, müssen Sie das Zeichen festlegen Legen Sie den Satz der Datenbank auf UTF8 fest und erzwingen Sie dann die Konvertierung der Feldinformationen in GBK bei der Sortierung, sodass die Ergebnisse in Pinyin-Reihenfolge sortiert werden. Zum Beispiel:
SELECT * FROM gb_country_isdcode ORDER BY (isdcode+0) asc


Ich habe es in MySQL ausprobiert und das Ergebnis war sehr zufriedenstellend.

Die Schlussfolgerung lautet: Codieren Sie beim Abfragen einfach die abgefragten Daten mit dem Zeichensatz gb2312 über die Konvertierungsfunktion und verwenden Sie dann nach der Konvertierung die chinesische Sortierung. Wenn Sie jedoch den Zeichensatz der Felder in der Tabelle tatsächlich auf gb2312 ändern, treten viele Codierungsprobleme auf, z. B. die Übertragung von Seitenwerten und der Zugriff aus der Datenbank, was sehr problematisch ist. Solange Sie bei der Abfrage den Zeichensatz angeben, ändert sich das physische Feld nicht wirklich in gb2312, es ist sehr einfach.

Das Obige ist der Inhalt. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!
SELECT * FROM table_name ORDER BY CONVERT(column_name USING gbk);


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