Упорядочевание в mysql по текстовому полю

serega86

Новичок
Упорядочевание в mysql по текстовому полю

Когда происходит упорядычевание по текстовому полю, приоритет следующий :

цыфры
английский алфавит
русский алфавит

а мне нужно вот так :

русский алфавит
цыфры
английский алфавит

Подскажите как реализовать это можно ?
 

Popoff

popoff.donetsk.ua
добавить дополнительное поле, в котором все буквы русского алфавита - на коды, к примеру, chr(0)..chr(65) (c учётом Ё и ё), все цифры заменены, к примеру, на символы с кодом chr(70)..chr(79), а все символы английского алфавита - на символы с кодом, ну, скажем, chr(100)..chr(163). ну, или, как-нибудь так.
 

serega86

Новичок
ну добавлять в базу ещё одну колонку это целая работа ...

а как можно с union реализовать ?
 

Beavis

Banned
serega86
документацию к нему прочти, вряд ли вопрос останется)
 

HraKK

Мудак
Команда форума
В майскуль можно настраивать приндип работы сортировки. Меняй как хочешь.
 

Фанат

oncle terrible
Команда форума
ну, collation ведь можно самому сделать и вкомпилить
 

Pigmeich

Новичок
*****
можно даже не вкомпилять, если collation не мультибайтового кода. (наверно, в 6-ой версии будут править)
 

Фанат

oncle terrible
Команда форума
Кстати, кто знает, где можно посмотреть таблицы сравнения, кроме как в исходниках? А то я что-то искал-искал, но не нашёл.
Интересуют правила для русского языка.
 

Kirill

Новичок
добавить collation не вариант - его не добавить на обычном хостинге.

UNION - имеется ввиду один запрос разбить на 3 с двумя UNION? или я что-то не так понимаю?
 

berkut

Новичок
про юнион он как всегда пальцем в небо тыкнул, лишь-бы что-нибудь написать
 

Mols

Новичок
Блин... ну если бы у меня такие грабли были..
вариант а). Добавить дополнительное поле. В нем 1, 2, 3 соответственно требуемому результату (для русского 1 для цифр 2 для инглиша 3). Поставить составной индекс и сортировать по двум полям.
Если блин это "непосильная работа" - то можно другие костыли....
Добавить 1, 2, 3 в начало каждой строки по тому же принципу как и в варианте а), но тогда придётся при выводе "откусывать" первый символ.
Ну и следить за апдейтами, инсертами... в общем несложный класс ПХП или пара функций MySQL всё это решат без особых проблем.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
berkut
Аргументы будут?

-~{}~ 28.01.08 12:18:

Kirill
Да. Если таблица небольшая.
В противном случае добавления нового поля в таблицу не избежать.
 
Сверху