Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Изменение порядка сортировки

1.9K
28 октября 2010 года
Rad87
123 / / 14.12.2005
Здравствуйте!!!
Есть ли в MySQL возможность сменить порядок сортировки английских и русских букв.

Т.е. при обычной сортировке первыми идут английский слова а затем русские. Можно сделать наоборот?
11
28 октября 2010 года
oxotnik333
2.9K / / 03.08.2007
нельзя, можно только в обратном порядке отсортировать Я-А - Z-A
385
28 октября 2010 года
SomewherSomehow
477 / / 25.07.2004
К сожалению с MySQL знаком поверхностно, по этому выскажусь на правах идеи.
Если в MySQL есть функция которая может символ преобразовать к ascii коду и есть операторы ветвления, то можно выкрутиться след образом.
 
Код:
select
    *,
    sortCol = case when ascii(mySortField) between ascii('А') and ascii('я') then 0 else 1 end
from
    mytable
order by
    sortCol,
    mySortField

Идея понятна? Т.е. создаете псевдо столбец, по которому сортируете сначала, а потом уже по основному столбцу. Псевдо столбец формируете при помощи оператора ветвления следующим образом, если первый символ строки русская буква, то в столбец записываете значение 0 если английская то например 1. Тогда при сортировке русские слова окажутся первыми в списке.
Можно сразу в order by писать условие сортировки без псевдо столбца, если такое поддерживается СУБД.
Дерзайте=)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог