Dit komt omdat da_DK.utf8
locale definieert het op deze manier. Linux locale-bewuste hulpprogramma's, bijvoorbeeld sort
zal ook zo werken.
Uw convert_to(name, 'latin1')
zal breken als het een teken vindt dat niet in de tekenset Latijn 1 is, bijvoorbeeld €
, dus het is geen goede oplossing.
U kunt order by convert_to(name, 'SQL_ASCII')
. gebruiken , die de door de landinstelling gedefinieerde sortering negeert en gewoon bytewaarden gebruikt.
Lelijke hack edit:
order by
(
ascii(name) between ascii('a') and ascii('z')
or ascii(name) between ascii('A') and ascii('Z')
or ascii(name)>127
),
name;
Dit sorteert eerst alles wat begint met ASCII non-letter. Dit is erg lelijk, want verder sorteren in string zou vreemd zijn, maar het kan goed genoeg voor je zijn.