powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / сортировка русских букв в utf8 средствами MySQL
10 сообщений из 10, страница 1 из 1
сортировка русских букв в utf8 средствами MySQL
    #33468625
kamuzon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делаю (образно): select * from tbl1 order by runame

Вопрос, в какой unicode кодировке нужно выставить таблицу, чтобы русские названия сортировались правильно?
utf8_bin самое похожее, но сначала выводит сортированные слова по заглавным русским буквам, а потом по мелким. А хотелось бы, чтобы сортировка была не АБВГД...ЭЮЯабвг...эюя , а АаБбВвГг....ЭэЮюЯя .
utf8_general_ci выводит вообще не пойми что, причём и слова с латинских букв попадаются среди русских.
utf8-swedish_ci тоже выводит криво.

Что я делаю не так и как нужно правильно делать?
...
Рейтинг: 0 / 0
сортировка русских букв в utf8 средствами MySQL
    #33468626
kamuzon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
....то ли уже поздно, то ли что, но при более детальном изучении вопроса кодировки utf8_general_ci выяснил, что русские буквы сортируются как АаБбВв, но в них ещё примешиваются латинские буквы, например, латинские ST сортируются после русской Т.

Вопросы остаются такие:
Где вообще про эти сортировки можно почитать подробнее?
И как сделать сортировку 0123...89AaBbCcDd...XxYyZzАаБбВвГг....ЭэЮюЯя средствами MySQL?
...
Рейтинг: 0 / 0
сортировка русских букв в utf8 средствами MySQL
    #33468628
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT ..., LCASE(runame) AS sortorder FROM tbl1 ORDER BY sortorder
?
Однако, к сожалению, есть сомнения, что подобный запрос может использовать индексы и будет сколько-нибудь производителен. В общем, я не гарантирую, что это единственный и оптимальный способ)
В любом случае, я бы советовал вам почитать раздел "MySQL Localization and International Usage" документации, соответствующей используемой вами версии СУБД.
...
Рейтинг: 0 / 0
сортировка русских букв в utf8 средствами MySQL
    #33468682
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй utf8_unicode_ci
...
Рейтинг: 0 / 0
сортировка русских букв в utf8 средствами MySQL
    #33469791
kamuzon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в случае utf8_unicode_ci сортировка получается такой (из тех слов, что у меня есть в базе):
ЧлСтТШst, что явно не соответствует вообще ничему.
...
Рейтинг: 0 / 0
сортировка русских букв в utf8 средствами MySQL
    #33470234
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оч. странно. Вот смотрите:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
mysql> select * from pp order by c;
+---------+
| c       |
+---------+
| S       |
| s       |
| T       |
| t       |
| Алексей |
| алексей |
| Борис   |
| борис   |
| Л       |
| л       |
| С       |
| с       |
| Человек |
| Ш       |
| ш       |
+---------+
15 rows in set (0.00 sec)

mysql> show create table pp\G
*************************** 1. row ***************************
       Table: pp
Create Table: CREATE TABLE `pp` (
  `c` varchar(20) character set utf8 collate utf8_unicode_ci default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

...
Рейтинг: 0 / 0
сортировка русских букв в utf8 средствами MySQL
    #33470269
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется, что вы делаете просто ALTER TABLE без конвертирования строк.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
сортировка русских букв в utf8 средствами MySQL
    #33471237
kamuzon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дропал таблицу и создавал заново и вносил строки - эффект тот же (это при utf8_general_ci) - латинские буквы st среди русских, другие пока не проверял.

2Хрен: у тебя "ENGINE=InnoDB DEFAULT CHARSET=latin1", а вовсе не UTF8, не знаю правда как сказываются настройки для всей таблицы на строки в этой таблице.

PS У меня FreeBSD-6.0 STABLE и MySQL 4.1.16
...
Рейтинг: 0 / 0
сортировка русских букв в utf8 средствами MySQL
    #33472077
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы что, гражданин?
Описание поля посмотрите
Код: plaintext
1.
2.
`c` varchar( 20 ) character set utf8 collate utf8_unicode_ci default NULL

...
Рейтинг: 0 / 0
сортировка русских букв в utf8 средствами MySQL
    #33472125
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kamuzonне знаю правда как сказываются настройки для всей таблицы на строки в этой таблице.приоритет объявления поля, ессно, выше.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / сортировка русских букв в utf8 средствами MySQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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