Харьков Форум
  Харьков Форум > Hi-Tech... > Программирование и создание сайтов

Старый 17.05.2019, 11:12   #1
Merphy

 
 
Регистрация: 6.03.2008
Адрес: Харьков
Из: Ukraine
Сообщений: 194
 
По умолчанию 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.

Если кто-то имеет опыт и может подсказать - буду признателен.


__________________
Завтра сбор в 10 утра. У кого электронные часы - в тысячу!
    Вверх
Старый 17.05.2019, 15:35   #2
Merphy

 
 
Регистрация: 6.03.2008
Адрес: Харьков
Из: Ukraine
Сообщений: 194
 
По умолчанию
Проблема решена.


__________________
Завтра сбор в 10 утра. У кого электронные часы - в тысячу!
    Вверх
Старый 19.05.2019, 09:07   #3
dimas


 
 
Регистрация: 31.08.2004
Адрес: Харьков, УКРАИНА
Из: Ukraine
Сообщений: 28,170
 
По умолчанию
Цитата:
Сообщение от Merphy
Проблема решена.
А озвучить решение? Вдруг ещё кому пригодится...


__________________
Всем удачи. Адью.
    Вверх
Старый 19.05.2019, 20:31   #4
Merphy

 
 
Регистрация: 6.03.2008
Адрес: Харьков
Из: Ukraine
Сообщений: 194
 
По умолчанию
Цитата:
Сообщение от dimas
А озвучить решение? Вдруг ещё кому пригодится...
Странно получается... 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

Ну, как-то так...


__________________
Завтра сбор в 10 утра. У кого электронные часы - в тысячу!
    Вверх

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Харьков Форум > Hi-Tech... > Программирование и создание сайтов

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему в официальном украинском языке не существует русских как национальности? Travisil Политика 91 21.01.2012 12:14
помогите с mysql !не хочет импортироватся база 96мб Violent Софт 20 6.08.2011 12:24
MySQL выборка из двух таблиц с сортировкой StyleT Программирование и создание сайтов 24 14.03.2011 11:34
MySQL - База удалена! Можно ли как то восстановить ее? modeewine Софт 2 7.08.2009 08:30
Харьковские учителя на территории школы должны общаться на украинском языке lavaget Политика 198 27.11.2006 11:34


Часовой пояс GMT +2, время: 07:51.


Харьков Форум Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.