Skip to content


MySQL: “ORDER BY” und deutsche Umlaute

Verwendetet man in einer MySQL-Datenbank die falsche Kollation, dann kann eine Sortierung mit ORDER BY in Verbindung mit deutschen Umlauten (ä, ö, ü) zu einer falschen Sortierreihenfolge führen. Die Ausgabe könnte dann folgendermaßen aussehen:

mysql> SELECT * FROM test ORDER BY name;
...
|    1 | besonders  |
|    2 | formschön  |
|    3 | stilvoll   |
|    4 | ästhetisch |
|    5 | überragend |
...

Abhilfe kann dabei die Verwendung von COLLATE schaffen, was eine Sortierung nach der angegebenen Kollation erzwingt. Das Ergebnis dieser Abfrage sieht dann wie folgt aus:

mysql> SELECT * FROM test ORDER BY name COLLATE latin1_german2_ci;
...
|    4 | ästhetisch |
|    1 | besonders  |
|    2 | formschön  |
|    3 | stilvoll   |
|    5 | überragend |
...

Warum das Ganze?

Bei der Arbeit mit PHPMyAdmin kam es dazu, dass es trotz einer Vereinheitlichung aller möglichen Kollationen und Kodierungen auf latin1_german2 nicht die gewünschte Sortierung ausgegeben wurde. Vielleicht wurde in PHPMyAdmin die eigentliche Einstellung auch nur übersehen?! Wer weiß, COLLATE führte in diesem Fall zum Erfolg.

Der Beitrag wurde am Freitag, den 19. März 2010 um 20:45 Uhr veröffentlicht und wurde unter MySQL abgelegt. Du kannst die Kommentare zu diesen Eintrag durch den RSS 2.0 Feed verfolgen. Du kannst einen Kommentar schreiben, oder einen Trackback auf deiner Seite einrichten. Die Tags zu diesem Eintrag lauten: , , , , .



Keine Antworten

Über den RSS-Feed der Kommentare kannst du dich über neue Kommentare informieren.



Some HTML is OK

or, reply to this post via trackback.