MYSQL запрос не упорядочил результаты mix char - PullRequest
0 голосов
/ 28 января 2019

У меня есть таблица с идентификатором, фамилией и т. Д., Когда я запрашиваю порядок по фамилии, я получаю что-то вроде этого

A, B, C,... V, Z, Ć, Č, Č, Đ ...

, где славянские символы располагаются после готового западноевропейского алфавита

Mysql соединение устанавливается в utf-8.запрос

SELECT * FROM table ORDER BY SURNAME ASC 

как я могу получить уникальный заказ, например

A, B, C, Ć, Č, Č, Đ... V, Z

Спасибо

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Вам нужно использовать правильное сопоставление, которое предоставляет необходимую информацию о порядке размещения строк.Вот как использовать ключевое слово collate:

SELECT * FROM table ORDER BY SURNAME COLLATE latin1_german2_ci

Здесь я использовал latin1_german2_ci в качестве примера, найдите сопоставление, соответствующее вашим требованиям.

Поддерживаемые наборы символов и сопоставления

0 голосов
/ 28 января 2019

в этом случае вам нужно определить свой собственный алфавит (или порядок).Для этого вы можете следовать ответу на этот вопрос .

Надеюсь, он работает со знаками, отличными от ascii.

...