MySQL База как быть с сортировкой полей на украинском языке?

Статус: Offline
Реєстрація: 06.03.2008
Повідом.: 215
MySQL База как быть с сортировкой полей на украинском языке?

Здравствуйте.
Впервые столкнулся с проблемой с сортировкой украинских символов.
Таблица в utf-8 collation вроде как utf_general_ci. Почему вроде? Потому, что ее применяю
ALTER TABLE `Town` COLLATE = utf8_general_ci ;
а в MySQL Workbench показывает Default_collation.
Пробовал менять для схемы - все равно отображает utf-8_bin.
Пробовал utf_unicode_ci - все равно сортирует не согласно алфавита.
В интернете очень мало ответов, но ниодин не решил проблему.

Может кто подскажет как применить или какой применять нужно collation?
Может схему нужно пересоздать и перезалить дамп?

Вариант с подстановкой "COLLATE utf8_unicode_ci" в конце не подходит, т.к. кверя формируется Criteria JPA.

Если кто-то имеет опыт и может подсказать - буду признателен.
 
Проблема решена.
 
А озвучить решение? Вдруг ещё кому пригодится...

Странно получается... 2 дня искал решение, а нашел его почти сразу после опубликования темы...

Значит так.. Никакие пропертя сервера (по крайней мере у меня на убунту) не укажут серверу правильный collation. Выход прост - либо в скрипте создания таблицы нужно изначально указать правильный collation, либо альерить необходимое поле. Ни альтер схемы, ни альтер таблицы результата не принес. Ну вот собственно и решение для уже существующей таблицы:
alter table schema.table_name alter column column_name varchar collate utf8_unicode_ci NOT NULL;
Соответственно <collate utf8_unicode_ci> нужно вставить в определение поля таблицы, если ее нет.
Если важен caseSensitive - <collation>_cs

Ну, как-то так...
 
upd. Для H2 базы нужно ставить collation сразу после создания базы до создания таблиц....
 
Назад
Зверху Знизу