Das liegt daran, dass da_DK.utf8
locale definiert es so. Linux-Locale-unterstützende Dienstprogramme, zum Beispiel sort
wird auch so funktionieren.
Ihr convert_to(name, 'latin1')
bricht ab, wenn es ein Zeichen findet, das nicht im Zeichensatz von Latin 1 ist, zum Beispiel €
, also ist es keine gute Problemumgehung.
Sie können order by convert_to(name, 'SQL_ASCII')
verwenden , das die vom Gebietsschema definierte Sortierung ignoriert und einfach Bytewerte verwendet.
Hässliche Hackbearbeitung:
order by
(
ascii(name) between ascii('a') and ascii('z')
or ascii(name) between ascii('A') and ascii('Z')
or ascii(name)>127
),
name;
Dadurch wird zuerst alles sortiert, was mit einem ASCII-Nichtbuchstaben beginnt. Das ist sehr hässlich, denn eine weitere Sortierung in Strings würde sich seltsam verhalten, aber es kann gut genug für Sie sein.