|
|
|
Сортировка русских символом
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Помогите с сортировкой - русские слова сортируются не в алфавитном порядке. Есть табличка: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Пробуем выбрать страны и отсортировать по title: Код: sql 1. Результат: Код: 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. Почему??? Куда копать? Какие переменные могут влиять на сортировку? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2015, 13:05 |
|
||
|
Сортировка русских символом
|
|||
|---|---|---|---|
|
#18+
spyfox, голубчик, а type "citext" -- это что такое ? если что-то собственного изготовление -- то как на нём порядок задан ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2015, 13:58 |
|
||
|
Сортировка русских символом
|
|||
|---|---|---|---|
|
#18+
ЗЫ приведи вывод вот такой штуки: Код: sql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2015, 14:00 |
|
||
|
Сортировка русских символом
|
|||
|---|---|---|---|
|
#18+
qwwq, citext - тип данных аналогичный text, но при поиске не учитывает регистр. Это офф расширение: http://www.postgresql.org/docs/9.3/static/citext.html Вот что выводит: Код: 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. Тут дело не в citext - я попробовал с типом text - результат такой же: 1) Табличка с типом text: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 2) Код: sql 1. 3) Результат такой же: Код: 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. 31. Что может быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 10:09 |
|
||
|
Сортировка русских символом
|
|||
|---|---|---|---|
|
#18+
spyfox, сделайте \l+ в psql и пришлите результаты. Надо посмотреть в какой кодировке и локали у вас база в которой вы работаете. -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 11:09 |
|
||
|
Сортировка русских символом
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk, babylon=# \l+ babylon List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges | Size | Tablespace | Description ---------+----------+----------+-------------+-------------+-------------------+-------+------------+------------- babylon | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | | 15 MB | pg_default | (1 row) А может так быть, что collate у базы выставлен правильно в UTF8, а collate на connection неправильно. В результате данные в базе хранятся в неверное кодировке, отсюда и проблемы с сортировкой ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 11:53 |
|
||
|
Сортировка русских символом
|
|||
|---|---|---|---|
|
#18+
spyfox, Сортировка в базе не зависит от collate на connection а только от collate в самой базе (или в самом поле если collate для него переопределен как описано в: http://www.postgresql.org/docs/9.4/static/collation.html но это не ваш случай). У меня есть теория что у вас библиотеки OS используемые базой сортируют UTF8 криво (такое бывает). У вас случайно не FreeBSD? Если FreeBSD то при установке PostgreSQL вы ICU библиотеку случайно не отключали? -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 12:55 |
|
||
|
Сортировка русских символом
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk, Спасибо за информацию! :) У меня MacOS 10.9.5 В ближайшее время попробую залить БД на тестовый сервер и оттестировать там. На MacOS postgresql ставил из портов. Как можно диагностировать эту проблему, а впоследствии и исправить ее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 15:22 |
|
||
|
Сортировка русских символом
|
|||
|---|---|---|---|
|
#18+
spyfoxMaxim Boguk, Спасибо за информацию! :) У меня MacOS 10.9.5 В ближайшее время попробую залить БД на тестовый сервер и оттестировать там. На MacOS postgresql ставил из портов. Как можно диагностировать эту проблему, а впоследствии и исправить ее? Диагностировать - кривая сортировка русского текста. Исправить - идей нет я с MacOS не работал. -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 16:22 |
|
||
|
Сортировка русских символом
|
|||
|---|---|---|---|
|
#18+
spyfoxMaxim Boguk, Спасибо за информацию! :) У меня MacOS 10.9.5 В ближайшее время попробую залить БД на тестовый сервер и оттестировать там. На MacOS postgresql ставил из портов. Как можно диагностировать эту проблему, а впоследствии и исправить ее? Быстрый поиск в интернете привел к " Я работаю под Mac OS X 10.6.4. Как все нормальные люди, я пользуюсь кодировкой UTF8. Но как оказалось, кириллические данные в этой кодировке в постгресе сортируются некорректно... Сразу стало понятно, что это проблема окружения. Через некоторое время, я выяснил что правила сортировки для локали ru_RU.UTF-8 в системе просто отсутствуют... Точнее файл LC_COLLATE, в котором должны храниться эти настройки, является символической ссылкой на файл из латинской локали. ~ $ ls -al /usr/share/locale/ru_RU.UTF-8/ lrwxr-xr-x 1 root wheel 28 Sep 26 2009 LC_COLLATE -> ../la_LN.US-ASCII/LC_COLLATE " Apple жжет просто напалмом. Как впрочем и FreeBSD от которого он начинался и в котором раньше (не знаю как сейчас) была 100% таже проблема (почему я про FreeBSD и спросил). -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 16:25 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39030694&tid=1997817]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
179ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 509ms |

| 0 / 0 |
