Dette er fordi da_DK.utf8
locale definerer det på denne måde. Linux-lokalitetsbevidste hjælpeprogrammer, for eksempel sort
vil også fungere sådan her.
Din convert_to(name, 'latin1')
vil bryde, hvis den finder et tegn, der ikke er på latin 1 tegnsæt, for eksempel €
, så det er ikke en god løsning.
Du kan bruge order by convert_to(name, 'SQL_ASCII')
, som vil ignorere lokalitetsdefineret sortering og blot bruge byteværdier.
Grimme 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;
Dette vil først sortere alt, der starter med ASCII ikke-bogstav. Det er meget grimt, for sortering længere i streng ville opføre sig mærkeligt, men det kan være godt nok for dig.