[MySQL] SELECT … ORDER BY -> Umlaute (Konvertierung)

Um in einem „MySQL SELECT“ dafür zu sorgen, dass eine Sortierung auch mit Umlauten am Anfang eines Wortes richtig funktioniert, muss man nur eine kleine Veränderung im Bereich des „ORDER BY“ vornehmen. Das Zauberwort heißt „REPLACE„.

In meinem Beispiel gehe ich davon aus, dass die Umalute als Entitäten in der Datenbank gespeichert wurden.

Ä = Ä

Wenn man in diesem Fall nichts am „ORDER BY“ ändert, würden die Einträge mit den Umlauten ganz am Anfang erscheinen (wegen dem &-Zeichen). Mit der „REPLACE“ Funktion kann ich beliebige Zeichen während der Sortierung kurzzeitig ersetzen lassen.

Beispiel:

ORDER BY
  REPLACE (
    REPLACE (
      REPLACE (
        SPALTENNAME ,"Ä","Ae"
      ), "Ö","Oe"
    ), "Ü","Ue"
  ) ASC

Nun werden die Entitäten durch „Ae, Oe oder Ue“ ersetzt und die Einträge mit den Umlauten erscheinen bei „A, O oder U“.