SOS - Sortierung nach Umlauten ist falsch

Soapp

Erfahrenes Mitglied
Wenn ich be MYSQL SORT benutze, reiht er mir die Umlaute zum Schluss ein.

Brauche dringend Hilfe dazu, da ihc bis morgen eine Göästeliste mit 800 Leuten
richtig sortiert ausgeben muss


Danke !

Soapp
 
Hallo,
wahrscheinlich ist die Tabelle und/oder die Datenbank für den schwedischen Zeichensatz ausgelegt. Das kann man mit COLLATE übersteuern.
Code:
...
ORDER BY
  nachname COLLATE latin1_german2_ci,
  vorname COLLATE latin1_german2_ci
Siehe http://dev.mysql.com/doc/refman/5.0/en/charset-collate.html
COLLATE gibt's soweit ich mich erinnere ab MySQL 4.0. Bei älteren Versionen habe ich mir auch schon mal einen abgebrochen mit der REPLACE()-Funktion, also alle Umlaute ersetzt durch ihre 2-Buchstaben-Variante. Das kann aber ganz schöne Formel-Verschachtelungs-Monster ergeben:
Code:
...
ORDER BY
  REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(nachname, 'Ä', 'Ae'), 'Ö', 'Oe'), 'Ü', Ue), 'ä', 'ae'), 'ö', 'oe'), 'ü', 'ue'), 'ß', 'ss'),
  REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(vorname, 'Ä', 'Ae'), 'Ö', 'Oe'), 'Ü', Ue), 'ä', 'ae'), 'ö', 'oe'), 'ü', 'ue'), 'ß', 'ss')
Siehe http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

Hoffe geholfen zu haben,
Martin
 
ManicMarble hat gesagt.:
Hallo,
wahrscheinlich ist die Tabelle und/oder die Datenbank für den schwedischen Zeichensatz ausgelegt. Das kann man mit COLLATE übersteuern.
Code:
...
ORDER BY
  nachname COLLATE latin1_german2_ci,
  vorname COLLATE latin1_german2_ci
Siehe http://dev.mysql.com/doc/refman/5.0/en/charset-collate.html
COLLATE gibt's soweit ich mich erinnere ab MySQL 4.0. Bei älteren Versionen habe ich mir auch schon mal einen abgebrochen mit der REPLACE()-Funktion, also alle Umlaute ersetzt durch ihre 2-Buchstaben-Variante. Das kann aber ganz schöne Formel-Verschachtelungs-Monster ergeben:
Code:
...
ORDER BY
  REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(nachname, 'Ä', 'Ae'), 'Ö', 'Oe'), 'Ü', Ue), 'ä', 'ae'), 'ö', 'oe'), 'ü', 'ue'), 'ß', 'ss'),
  REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(vorname, 'Ä', 'Ae'), 'Ö', 'Oe'), 'Ü', Ue), 'ä', 'ae'), 'ö', 'oe'), 'ü', 'ue'), 'ß', 'ss')
Siehe http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

Hoffe geholfen zu haben,
Martin



COLLATE funktioniert bei mir leider nicht
Habe MySQL 4.0.23
 
Ja, kann auch sein dass es Collations erst ab 4.1 gibt.
Hat denn wenigstens die REPLACE()-Lösung funktioniert?
Martin
 
Mist - nächstes Problem

Jetzt hab ich Mysql 4.1 ... Collate funktioniert aber in der Datnbank werden alle
Umlaute mit ? angezeigt *seufz*

Was nun ?

Danke

Soapp


ok, wenn man den englischen Firefox benutzt auch kein Wunder ;-)
Mit IE funktionierts
 
Zuletzt bearbeitet:
Zurück