Điều này là do da_DK.utf8
ngôn ngữ định nghĩa nó theo cách này. Các tiện ích nhận biết ngôn ngữ Linux, ví dụ:sort
cũng sẽ hoạt động như thế này.
convert_to(name, 'latin1')
của bạn sẽ bị hỏng nếu nó tìm thấy một ký tự không có trong bộ ký tự Latinh 1, ví dụ:€
, vì vậy đây không phải là một giải pháp tốt.
Bạn có thể sử dụng order by convert_to(name, 'SQL_ASCII')
, sẽ bỏ qua sắp xếp được xác định theo ngôn ngữ và chỉ sử dụng các giá trị byte.
Chỉnh sửa hack xấu xí:
order by
(
ascii(name) between ascii('a') and ascii('z')
or ascii(name) between ascii('A') and ascii('Z')
or ascii(name)>127
),
name;
Điều này sẽ sắp xếp đầu tiên bất kỳ thứ gì bắt đầu bằng ASCII không phải chữ cái. Điều này rất xấu, bởi vì việc sắp xếp xa hơn trong chuỗi sẽ rất kỳ lạ, nhưng nó có thể đủ tốt cho bạn.