Ini karena da_DK.utf8
locale mendefinisikannya dengan cara ini. Utilitas sadar lokal Linux, misalnya sort
juga akan bekerja seperti ini.
convert_to(name, 'latin1')
Your Anda akan pecah jika menemukan karakter yang tidak dalam set karakter 1 Latin, misalnya €
, jadi ini bukan solusi yang baik.
Anda dapat menggunakan order by convert_to(name, 'SQL_ASCII')
, yang akan mengabaikan pengurutan yang ditentukan lokal dan hanya menggunakan nilai byte.
Hasil edit yang jelek:
order by
(
ascii(name) between ascii('a') and ascii('z')
or ascii(name) between ascii('A') and ascii('Z')
or ascii(name)>127
),
name;
Ini akan mengurutkan terlebih dahulu apa pun yang dimulai dengan non-huruf ASCII. Ini sangat buruk, karena menyortir lebih jauh dalam string akan berperilaku aneh, tetapi itu bisa cukup baik untuk Anda.