Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Сортировка списка по алфавиту при запросе пользователя  (Прочитано 11942 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Люсь
Команда клуба

ru
Offline Offline
Пол: Женский

WWW
« : 26-05-2005 09:36 » 

У меня возникла проблема с сортировкой списка:

select * from test where name like 'A%'
выборка происходит нормально, если довольствоваться сортировкой по возрастанию id

но, нам нужен алфавитный порядок, попытавшись отсортировать по наименованию:
select * from test where name like 'A%' order by name
получает не алфавитное возрастание списка
использование group by дат тот же результат.

но эта проблема возникает только с русскими буквами
возможно, это проблема MySQL

например, возьмём эту букву: http://paralma.kulichki.com/index.php?action=talmut&colname=name&letter=%D1
Список идёт по второй и последующим буквам не по алфавиту.

Вложенные запросы на всю длину слова - это соответственно возрастающая нагрузка на сервер...

Предложите идеи!
« Последнее редактирование: 15-12-2007 16:16 от Алексей1153++ » Записан

Посторонним просьба не беспокоить!
-------------------------------------------------
O (I) Rh +
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 26-05-2005 12:15 » 

А какая версия MySQL? С 4-й версии там появилось свойство "Сравнение" для таблиц и полей. И по умолчанию почему то ставится какая то шведская кодировка.
У меня были такие же проблемы с сортировкой и поиском когда провайдер перешел с 3-й версии базы на 4-ю. Все нормализовалось когда поставил cp1251_general_ci.
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
Chuda
Гость
« Ответ #2 : 20-03-2006 16:16 » 

Проблема именно в кодировке. MySQL корректно работает только с ср1251. Что делать прогрессивному люду, пытающемуся внедрять UTF-8 - ума не приложу.
а что-то надо.
я вот тоже с примерно той же бедой мучаюсь.
хотя есть кодировочная беда и веселее.
но об этом - разговор в отдельной теме.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 20-03-2006 20:47 » 

Переход на utf-8 неизбежен, но с гиморроем придется помучится. Надеюсь, со временем софт поправят и пользоваться им можно будет без бубна.

Рекомендую поэкспериментировать с MySQL 5.0 - со временем хостеры наверняка на нее перейдут. В ней поддержка кодировок работает хорошо (за 100% не поручусь - мало тестил). Да же можно назначить отдельную кодировку на таблицу или столбец. Кроме того, сильно продвинулась поддержка SQL-стандартов.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

Хз, я не очень просто не очень во всё это верю, во всякие там сатурны и прочую поебень.
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 21-03-2006 00:47 » 

Chuda, если проблемы с отображением текста (абра кадабра) попробуй после подключения к базе принудительно указать кодировку.
Код:
mysql_query("SET CHARACTER SET utf8");

MySQL корректно работает только с ср1251.
У меня например буквально недавно были проблемы с ср1251 (у нового хостера). База упорно интерпретировала текст как latin Жаль хотя везде было установлено cp1251_general_ci.
Выше приведенный код помог.
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
Chuda
Гость
« Ответ #5 : 21-03-2006 04:39 » 

RomCom, спасибо, но вот именно таких проблем, как абракадабра не было.
была проблема (и осталась) такая же, с сортировкой по алфавиту.
принудительное указание кодировки не решило проблему.
Ещё наблюдается очень смешной глюк.
такой запрос:
Код:
select `username` from `customers` where `username`='Санта'
возвращает две(!) записи - "Санта" и "Лента". И таких пар было подобрано несколько. То есть некоторые различные строки MySQL считает за идентичные.
« Последнее редактирование: 15-12-2007 16:17 от Алексей1153++ » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines