За последние 24 часа нас посетили 16920 программистов и 1316 роботов. Сейчас ищут 1560 программистов ...

Сортировка русских слов

Тема в разделе "MySQL", создана пользователем Битник, 4 июн 2007.

  1. Битник

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

    С нами с:
    9 фев 2007
    Сообщения:
    103
    Симпатии:
    0
    Помогите отсортировать русские слова.

    Пробовал таким образом, но не сортирует:

    [sql]SELECT
    field,
    IF(field REGEXP '^[а-яА-Я0-9]', 0, 1) as sort
    FROM table
    ORDER BY sort, field[/sql]
     
  2. svk

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

    С нами с:
    7 авг 2006
    Сообщения:
    506
    Симпатии:
    0
    Адрес:
    NetByNet
    просто кодировку в базе выставить cp1251_general_ci и тогда нормально будет сортировать обычным order by ``
     
  3. Битник

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

    С нами с:
    9 фев 2007
    Сообщения:
    103
    Симпатии:
    0
    У меня в базе и так кодировка cp1251.
     
  4. svk

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

    С нами с:
    7 авг 2006
    Сообщения:
    506
    Симпатии:
    0
    Адрес:
    NetByNet
    и данные занесены именно в cp1251 (читай - клиент mysql работает в какой кодировке)?
     
  5. Битник

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

    С нами с:
    9 фев 2007
    Сообщения:
    103
    Симпатии:
    0
    Ааа..... Наверное в этом проблема.

    Страница на UTF-8, база на cp1251. Заношу данные UTF-8 -> cp1251. Не спрашивайте зачем, по-другому нет возможности. Отображается на странице всё нормально.
     
  6. AlexGousev

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

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Человеку надо, чтобы сначала строки, начинающиеся с кириллицы, а потом только латинница. По умолчанию, естественно, наоборот.
    Битник
    А что неправильно сортирует? Колонка sort как выглядит?
    Что получится, если убрать условие и оставить order by field (нормально будет кириллица сортироваться)?
     
  7. Битник

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

    С нами с:
    9 фев 2007
    Сообщения:
    103
    Симпатии:
    0
    Я написал чуть выше, в чём проблема.

    Страница на UTF-8, база на cp1251. Заношу данные UTF-8 -> cp1251. Не спрашивайте зачем, по-другому нет возможности. Отображается на странице всё нормально, а сортировка русских букв неправильная.
     
  8. Битник

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

    С нами с:
    9 фев 2007
    Сообщения:
    103
    Симпатии:
    0
    Проблема решена! Я сортировл по полю TEXT. Сделал бинарный BLOB и всё начало хорошо сортироваться. Всем спасибо!