select
*,
sortCol = case when ascii(mySortField) between ascii('А') and ascii('я') then 0 else 1 end
from
mytable
order by
sortCol,
mySortField
Изменение порядка сортировки
Есть ли в MySQL возможность сменить порядок сортировки английских и русских букв.
Т.е. при обычной сортировке первыми идут английский слова а затем русские. Можно сделать наоборот?
нельзя, можно только в обратном порядке отсортировать Я-А - Z-A
Если в MySQL есть функция которая может символ преобразовать к ascii коду и есть операторы ветвления, то можно выкрутиться след образом.
Код:
Идея понятна? Т.е. создаете псевдо столбец, по которому сортируете сначала, а потом уже по основному столбцу. Псевдо столбец формируете при помощи оператора ветвления следующим образом, если первый символ строки русская буква, то в столбец записываете значение 0 если английская то например 1. Тогда при сортировке русские слова окажутся первыми в списке.
Можно сразу в order by писать условие сортировки без псевдо столбца, если такое поддерживается СУБД.
Дерзайте=)