Auge: Sortierung von Strings in MySQL mit utf8_bin

Beitrag lesen

Hallo

Welche Möglichkeiten habe ich, eine Ausgabe unabhängig von Groß- und Kleinschreibung zu sortieren, ohne die Unterscheidung von z.B. "ä" und "a" aufzugeben?

SELECT name COLLATE utf8_general_ci FROM …

Hmm, in der Ergebnismenge aus der Abfrage ist das Arrayelement $row['user_name'] (wie das Feld in echt™️ heißt) laut PHP-Fehlermeldung unbekannt. Erweitere ich deinen Ansatz um ein Alias, das mit dem Feldnamen identisch ist, funktioniert die Abfrage.

SELECT
  ein,
  feld,
  user_name COLLATE utf8_general_ci AS user_name,
  und,
  weitere,
  felder
FROMORDER BY user_name ASC

Der Ansatz von @TS, die Kollationsangabe in der ORDER-BY-Klausel zu notieren, funktioniert ebenfalls und sieht mMn auch schlüssiger aus, schließlich geht es ja um die Sortierung. Allerdings wird die ORDER-BY-Klausel in meinem Fall dynamisch zusammengebaut, womit eine Kollationsangabe falsch sein kann. Damit ich faul sein kann und nicht noch zusätzliche Fallunterscheidungen treffen muss, bleibe ich bei deiner Lösung. In anderen Anwendungsfällen ist TS' Lösung vermutlich ebenbürtig, oder gibt es da Fallstricke?

Danke

Tschö, Auge

--
Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
Toller Dampf voraus von Terry Pratchett