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.
Keine Antworten
Über den RSS-Feed der Kommentare kannst du dich über neue Kommentare informieren.