На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! информация о разделе
user posted imageДанный раздел не предназначается для обсуждения, здесь собираются только вопросы-ответы по тематике баз данных. Если есть желание обсудить какие-то вопросы, связанные с тематикой баз данных - перейдите в соответствующие разделы "Базы данных: общие вопросы" или "Базы данных: SQL".
Модераторы: Bas, Chow, MIF
  
    > [на редактирование] Запросы по текстовым полям , работа с чарсетами
      Делаю запрос
      ExpandedWrap disabled
        SELECT ...,Name,... FROM table WHERE .... ORDER BY Name ASC

      Хотелось бы получить ряды отсортированные по возрастанию в алфавитном порядке. Но он мне какую-то чушь гонит. Сначала на "А", потом на "Г", потом на "В", потом опять на "А". Где нормально, где вообще в разнобой. Я тут подумал и понял - у него какая-то своя технология сортировки.
      Вообщем, я понял, что мне нужно: нужно сортировка, но по первому символу поля Name. Как это сделать? Что-то типа "ORDER BY Name[1] ASC".
      А то сейчас получается так, что пришлось мускульную сортировку забыть и сортироввать по CustomSort в списке, а у него скорость сортировки оставляет желать лучшего.
        А какой язык выбран для мускуля? В переменных сервака? На сколько я понимаю, сортировать ты хочешь русский текст. Сделать это правильно можно только, если использовать русскую локализацию. Я знаю, как это выбрать глобально для всего сервера (в конфиге мускуля должен быть путь language=...mysql/share/russian), а вот как его определить для одного запроса :unsure: Да и возможно ли это вообще?
          Кроме того, это зависит ещё и от кодировочки. Нормально сортирует он только в одной, а вот в какой... не помню. Могу посмотреть, но нужно время... Лучше вссего поэксперементировать! Как только получишь требуемый результат, значит правильно настроил язык и кодировку.
          ЗЫ. Да и ещё. В случае вышеописанных "неправильных" настроек не верно выполняются и сами запросы, не только сортировка. Так что.... :)
            Всем спасибо.
            Проблема вылечилась добавлением
            ExpandedWrap disabled
              character-sets-dir = C:/mysql/share/charsets
              default-character-set = win1251
            в файл my.ini в секцию [mysqld]
            Выйграл где-то секунд 80 обработки! B)

            Кстати, можно добавить в FAQ.
              Для Unix:
              Изменяем файл my.cnf

              прописываем:

              default-character-set = win1251
              character-sets-dir=ччч,
              где вместо "ччч" указать пусть к папке мускула share/charsets, которая содержит кучу *.conf файлов

              А после модификаций рестартонуть апач...
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0237 ]   [ 15 queries used ]   [ Generated: 28.03.24, 08:36 GMT ]