Ёш
Member
Откуда:
Сообщений: 1765
|
| MBG | Покажите мне, как сделать регистронезависимый поиск и сортировку по вот такой простенькой табличке: create table test (title_rus text, title_ukr text);
title_rus - на русском языке, title_ukr - на украинском. Для справки замечу, что порядок букв в вышеназванных языках разный. | Спасибо за простой пример, я пробовал протестировать этот функционал но не сообразил какой язык использовать что бы ошибка была видна явно.
Debian squeeze/sid Name | Owner | Encoding | Collation | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- seb | seb | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 |
create table test (title_rus text, title_ukr text);
insert into test select
unnest('{а,б,в,г,д,е,ё,ж,з,и,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ъ,ы,ь,э,ю,я}'::text[]),
unnest('{а,б,в,г,ґ,д,е,є,ж,з,и,і,ї,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ь,ю,я}'::text[]);
select * from test order by title_ukr desc;
title_rus | title_ukr
-----------+-----------
я | я
ю | ю
э | ь
ь | щ
ы | ш
ъ | ч
щ | ц
ш | х
ч | ф
ц | у
х | т
ф | с
у | р
т | п
с | о
р | н
п | м
о | л
н | к
м | й
л | ї
к | і
й | и
и | з
з | ж
ж | є
ё | е
д | ґ
е | д
г | г
в | в
б | б
а | а но вот что интересно, я попробовал как в предыдущем сообщений сделать локаль базы en_US, и оно вроде сортирует правильно:
test | postgres | UTF8 | en_US.UTF8 | en_US.UTF8 | select * from test order by title_ukr desc;
title_rus | title_ukr
-----------+-----------
я | я
ю | ю
э | ь
ь | щ
ы | ш
ъ | ч
щ | ц
ш | х
ч | ф
ц | у
х | т
ф | с
у | р
т | п
с | о
р | н
п | м
о | л
н | к
м | й
л | ї
к | і
й | и
и | з
з | ж
ж | є
ё | е
е | д
д | ґ
г | г
в | в
б | б
а | а
хмм... я в замешательстве %)
может быть это просто банальная ошибка в локале ru_RU.UTF-8 ? |