Есть текстовое поле, по которому данные сортируются. В поле могут быть следующие символы:
-0123456789
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
абвгдежзийклмнопрстуфхцчшщъыьэюяё
Сортировка в БД меня не устраивает: я хотел бы, чтобы порядок сортировки был таким:
АаБбВвГгДдЕеЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя
AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz
0123456789
При этом важно, чтобы Е и Ё рассматривались как один и тот же символ, а дефис - не учитывался.
Как подобное можно организовать в MySQL?
order by replace(myfield,'ё','е')
Очень небыстро, но оно-таки отсортирует. Хотите быстрее - копайте настройки кодировки или создавайте еще один столбец со строкой, в которой е и ё уже были заменены на е.
Копать стоит в сторону collation. Где посмотреть порядок символов в каждой из них - не знаю. И не уверен, что удастся "Е и Ё рассматривались как один и тот же символ, а дефис - не учитывался."
Update: хотя нет, вот есть просмотр таблиц http://collation-charts.org/mysql60/mysql604.utf8_unicode_ci.european.html. А с дефисами можно расправиться как-то так
SELECT REPLACE(columnname, "-", "") as c FROM T ORDER BY c
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем приветЕсть система опросов, там может быть несколько разных вопросов
Этот код выгружает данные из бд по очереди при обновлении страницы, если данные закончились, он начинает сначалаКак переделать, чтобы пока...