Сортировка глючит

Тема в разделе "SQL", создана пользователем Chetverg, 7 окт 2004.

Статус темы:
Закрыта.
  1. Chetverg

    Chetverg Гость

    Такая беда:
    SELECT * FROM Akter ORDER BY name
    такой вот простой запрос... сортировать-то он сотирует, но как-то странно:
    Г....
    В....
    Г....
    А...
    Б...
    Б...
    Б...
    Б...
    В...
    А...
    В...
    А...
    А...
    А...
    А...
    А...
    В...
    ну и так далее... логики никакой...
    :huh:
    Кто знает чё за дела?
    СУБД: MySQL
    Таблица: CREATE TABLE Akter (kod_akter INTEGER PRIMARY KEY, name CHAR(50));

    Спасибо
     
  2. ????

    ???? Гость

    Chetverg
    Проверь настройки локали (если они есть на MSSQL Server'е). Может сервак настроен на "нерусский" язык, поэтому так и сортирует.

    З.Ы. Проверить не могу.
     
  3. Barmutik

    Barmutik Гость

    Если есть возможность, то запустите mysqld с опцией: --default-character-set=cp1251" , если нет, то попробуйте послать MySQL такой запрос: SET CHARACTER SET cp1251_koi8 - это изменит набор символов для текущего соединения. SET CHARACTER SET DEFAULT - установит обычную таблицу символов.

    Имейте ввиду, что эта настройка действует только для текущего соединения. Более подробно в RTFM.

    Для правильной работы ORDER BY и GROUP BY сервер MySQL должен знать текущий набор символов. К сожалению, версии 3.х и 4.х MySQL могут иметь только _один_ charset на все базы одновременно. Задается в /etc/my.cnf:

    [mysqld]
    default-character-set=koi8_ru

    Проверить можно так:

    mysql> show variables like 'character_sets' ;
    mysql> show variables like 'character_set' ;

    В этом случае все символьные поля _во_всех_ таблицах будут храниться в KOI8-R. Для того, чтобы работали клиенты ODBC из под Windows необходимо, чтобы первым SQL оператором в Windows-приложении была команда:

    SET CHARACTER SET cp1251_koi8 ;

    Тогда включится перекодировка "на лету". На сервере будет KOI8-R, а на клиенте Windows-1251 и все сортировки будут работать. Эту же команду можно прописать в MyODBC 3.5х "SQL command on connect" (STMT=), она выполнится автоматически.

    Другой вариант -- не использовать KOI8-R, а хранить базы в Windows-1251 и сообщить об этом серверу, прописав в /etc/my.cnf:

    [mysqld]
    default-character-set=cp1251

    Удачи!
     
Загрузка...
Похожие Темы - Сортировка глючит
  1. vera2014
    Ответов:
    0
    Просмотров:
    1.071
  2. Liori
    Ответов:
    2
    Просмотров:
    1.005
  3. FCDK
    Ответов:
    0
    Просмотров:
    1.264
  4. ленарано
    Ответов:
    1
    Просмотров:
    1.103
  5. Creder
    Ответов:
    0
    Просмотров:
    1.346
Статус темы:
Закрыта.

Поделиться этой страницей