Forum Webscript.Ru
Общие => Базы данных => Тема начата: Артур от 01 Ноября 2001, 04:55:39
-
Я столкнулся с проблемой сортировки в MySQL.
Проблема в том, что при стандартном запросе с сортировкой
SELECT * FROM tablename ORDER BY sort_field ASC
если данные на русском языке, то результат получается неадекватный, вот
пример отсортированных данных:
А
Б
В
Г
Аа
Ва
Ар
Вр
Может приходилось сталкиваться с подобной проблемой?
Не хотелось бы переводить все данные на английский шрифт, слишком это
корявое решение проблемы.
-
Несоотвествие кодировок, скорее всего таблица в win1251, а у mysql-сервера кодировка koi-8r. Надо выяснить у хостера кодировка, и преобразовывать ее все время перед выборкой и добавлением/изменением.
-
Спасибо, я предполагал нечто подобное, как говорится, "ларчик просто открывался":-)
-
еще может быть кодировка latin1, но наверняка хостеры ее не ставят :). если на локальном mysql использовать, то надо в my.cnf поменять кодировку
-
А у тебя в свойствах поля стоит BINARY? Если нет, то поставь.
-
В любом случае можно отсортировать оп первой букве, а если использовать SUBSTRING(), можно и по 2, 3 и т.д. Конечно, это в случае, если не нет возможности изменить кодировку.
ORDER BY ASCII(field)
-
кодировка latin1, если на локальном mysql использовать, то надо в my.cnf поменять кодировку
А что там нужно писать.
-
default-character-set=win1251
-
А и в правду.
Незаметил в конфиге. Он оказывается там уже был только латин
Спасибо.