Kollation

Um die deutschen Umlaute Ä, Ö und Ü bzw. ä, ö und ü richtig in einer MySQL-Datenbank zu sortieren, benötigt man die passende Kollation (den passenden Zeichensatz) in der betreffenden Spalte.

Haben wir beispielsweise 4 Länder, die wir korrekt sortiert ausgeben möchten (Andorra, Deutschland, Österreich und Äthiopien), erhalten wir in der Standard-Kollation "latin1_swedish_ci" beispielsweise das Ergebnis bei dem Versuch, die Länder in aufsteigender Reihenfolge zu sortieren:

Andorra
Australien
Zypern
Äthiopien
Österreich

Mit Kollation "latin1_general_ci" erhalten wir schon ein gute Annäherung mit "Ä" nach "A":

Andorra
Australien
Äthiopien
Österreich
Zypern

Oder aber mit Kollation "latin1_german2_ci" oder "utf8_german2_ci" mit "Ä" vor "A" "Ä" = "AE" (vielen Dank an Herrn Hans-Joachim Pech für diese Berichtigung):

Äthiopien
Andorra
Australien
Österreich
Zypern

Korrekt sortiert wird jedoch mit den Zeichensätzen "latin1_german1_ci" und "utf8_general_ci":

Andorra
Äthiopien
Australien
Österreich
Zypern

Schlussbemerkung: Die Kollation (z.B. german1_ci) regelt also den Vergleich zwischen verschiedenen Zeichen innerhalb der gewählten Zeichenkodierung (z.B. utf8). Bei Sortierungen mit kleinen und großen Anfangsbuchstaben werden diese bei den beiden letztgenannten gleich behandelt (Endung "ci"steht für "case insensitive").

... zurück zum Blog