powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сортировка столбца текста на русском
8 сообщений из 8, страница 1 из 1
Сортировка столбца текста на русском
    #33258000
ChAko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу такой запрос:
Код: plaintext
select title from texts order by title asc
где столбец title заполнен названиями на русском

Вот результат выполнения
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
1408
В комнате смерти
Бабуля
Газонокосильщик
Баллада о блуждающей пуле
Армагеддон (Часть 1)
Армагеддон (Часть 2,3)
Грузовик дяди Отто
…

В чем дело, почему сортировка работает не корректно?
Делаю это на своем локальном сервере, в сеть выкладывать не пробовал.
---
HotCharts.ru - Всегда свежие чарты с возможностью скачать mp3
...
Рейтинг: 0 / 0
Сортировка столбца текста на русском
    #33259843
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая версия MySQL ?
...
Рейтинг: 0 / 0
Сортировка столбца текста на русском
    #33260116
ChAko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин ККакая версия MySQL ?

MySQL essential 4.1.14 win32
...
Рейтинг: 0 / 0
Сортировка столбца текста на русском
    #33260166
AANN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Данные в таблицу как попадают?
Возможно, пробелы в начале строк?
Или, к примеру, "В комнате смерти" - "В" английская?
...
Рейтинг: 0 / 0
Сортировка столбца текста на русском
    #33260534
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно чарсет результатов поставить такой, в котором символы.
Можно просто задать общий
set character set cp1251;
И достану ка я записную книжку, есть у меня один креатифчик на эту тему, сам написал :).

Чарсет - набор кодов отображения символов для конкретного языка. Определяют буквы и их отображения.

В версиях MySQL 3.x, 4.0.x чарсет глобальный для всего сервера.
Он задается в my.ini (my.cnf -для юниксподобных).
default-character-set=cp1251
Объявлять чарсет в секции [mysqld] в конце, после других параметров.

В версиях 4.1.х, 5.0.х кодировки хранения и работы сервера были серьезно переработаны в юникод, значительно расширен синтаксис.
В этих версиях объявление чарсета в файле конфигурации my.ini
default-character-set=cp1251
бесполезно для соединения. Объявленный часрсет берется по дефолту для новых объектов БД (таблиц), столбцов и др.
Кроме этого кодировку по умолчанию можно задать для конкретной БД
ALTER DATABASE blabla character SET cp1251;
влияет опять же, как дефолтное значение при создании новых таблиц.

API - это компоненты, интерфейс, через который страница, программа коннектится к серверу БД. В API не всегда, но часто есть свойство/параметр, в котором можно указать чарсет соединения. Данный наворот может работать только с версиями 4.1.х, 5.0.х. В предыдущих версиях либо не будет влиять, либо вызовет ошибку, т.к. на низком уровне нет возможности задать этот параметр.
Например для ZeosDBO это строка в properties: CodePage=cp1251
Для разных компонентов/интерфейсов строка может по разному называться, в различные свойства добавлятся или выбираться из возможных значений. Для php - не скажу, потому что работал на php3, php4 с версиями 3, 4.0.х и не решал данную задачу.


Далее идет не сильно красивый, но самый универсальный метод:
задать чарсет для соединения.
Наиболее важный параметр - это
character_set_client
character_set_results - не тестировал, но и не задавал отличным от character_set_client, так что никаких конкретных рекомендаций нет.
Для того, чтобы не запаривать себе голову и помнить что на что влияет рекомендую задавать
set character set cp1251;
Фактически это будет первый запрос после установления коннекта.

Общие рекомендации:
1)Если не понятно, чем отличаются параметры сервера по чарсетам - советую проверить на тестовом примере, лучше 1 раз увидеть, чем 100 раз услышать.
2) Устанавливайте стабильные версии MySQL или минимум beta (например 5.0.10-beta).
3) Читайте документацию по тем компонентам, языкам в которых работаете.

Сервер не знает что вы от него хотите, пока вы сами не зададите ему нужные вам характеристики, он предоставляет возможноти, а их реализациями занимайтесь сами.

Вот собственно такой крео получился.
Если я в чем-то ошибся или не дописал - в каменты :)
...
Рейтинг: 0 / 0
Сортировка столбца текста на русском
    #33260542
ChAko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AANNДанные в таблицу как попадают?
Пишу из файла в виндоус кодировке.
AANNВозможно, пробелы в начале строк?
Или, к примеру, "В комнате смерти" - "В" английская?
Нет не чего такого.
...
Рейтинг: 0 / 0
Сортировка столбца текста на русском
    #33260543
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кодировки и collations какие?

покажи для начала show create table имятвоейтаблицы
и скажем
show variables like '%char%';
...
Рейтинг: 0 / 0
Сортировка столбца текста на русском
    #33262153
ChAko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как и думал, выложив на сервер все заработало нормально. Вопрос снимаеться.
---
HotCharts.ru - Всегда свежие чарты
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сортировка столбца текста на русском
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]