За последние 24 часа нас посетили 16472 программиста и 1551 робот. Сейчас ищут 2088 программистов ...

UTF8 и order by

Тема в разделе "MySQL", создана пользователем Feanor1982, 31 июл 2008.

  1. Feanor1982

    Feanor1982 Активный пользователь

    С нами с:
    20 июн 2008
    Сообщения:
    41
    Симпатии:
    0
    У меня на сервере стоит по умолчанию кодировка utf8. При этом при запросе с использованием order by полученные данные не упорядочиваются в алфавитном порядке. Причём эта проблема только с русскими буквами. С латиницей такой проблемы нет. Не подскажите, в чём может быть дело?
     
  2. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    collation какой?
     
  3. Feanor1982

    Feanor1982 Активный пользователь

    С нами с:
    20 июн 2008
    Сообщения:
    41
    Симпатии:
    0
    Во время записи collation не выставлял, а потом пробовал utf8_general_ci прописывать в качестве default_collation в my.ini, только не помогло.
     
  4. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    SHOW FULL COLUMNS from `table`;
    И запрос: будем смотреть.
     
  5. Feanor1982

    Feanor1982 Активный пользователь

    С нами с:
    20 июн 2008
    Сообщения:
    41
    Симпатии:
    0
    Код (Text):
    1.  
    2. mysql> show full columns from evnt;
    3. +------------+--------------+-----------------+------+-----+---------+----------
    4. ------+---------------------------------+---------+
    5. | Field      | Type         | Collation       | Null | Key | Default | Extra
    6.       | Privileges                      | Comment |
    7. +------------+--------------+-----------------+------+-----+---------+----------
    8. ------+---------------------------------+---------+
    9. | id         | int(11)      | NULL            | NO   | PRI | NULL    | auto_incr
    10. ement | select,insert,update,references |         |
    11. | ev_name    | varchar(255) | utf8_general_ci | YES  |     | NULL    |
    12.       | select,insert,update,references |         |
    13. | ev_type    | varchar(255) | utf8_general_ci | YES  |     | NULL    |
    14.       | select,insert,update,references |         |
    15. | ev_country | varchar(255) | utf8_general_ci | YES  |     | NULL    |
    16.       | select,insert,update,references |         |
    17. | city       | varchar(255) | utf8_general_ci | YES  |     | NULL    |
    18.       | select,insert,update,references |         |
    19. | ev_data    | date         | NULL            | YES  |     | NULL    |
    20.       | select,insert,update,references |         |
    21. | ev_text    | text         | utf8_general_ci | YES  |     | NULL    |
    22.       | select,insert,update,references |         |
    23. | ev_foto    | varchar(255) | utf8_general_ci | YES  |     | NULL    |
    24.       | select,insert,update,references |         |
    25. +------------+--------------+-----------------+------+-----+---------+----------
    26. ------+---------------------------------+---------+
    27. 8 rows in set (0.20 sec)
    Это что я выдрал из консольного клиента. Запросы имеют вид, например такой
    Код (Text):
    1.  
    2. Select ev_country from evnt order by ev_country
    Должны выводить по алфавиту
    Венгрия
    Россия
    А выводят наоборот[/code]
     
  6. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Вроде все нормально. Все данные точно правильные? "Россия" - с кириллической буквы начинается? :)
    У меня все базы в utf-8 и не было никаких проблем с сортировкой.
     
  7. Feanor1982

    Feanor1982 Активный пользователь

    С нами с:
    20 июн 2008
    Сообщения:
    41
    Симпатии:
    0
    Я даже буквы перебить попробовал. Не помогло.