За последние 24 часа нас посетили 22819 программистов и 1041 робот. Сейчас ищет 621 программист ...

Заставить работать ilike в ru_RU.utf8

Тема в разделе "PostgreSQL", создана пользователем vlad-net, 13 май 2008.

  1. vlad-net

    vlad-net Активный пользователь

    С нами с:
    28 июл 2006
    Сообщения:
    42
    Симпатии:
    0
    Адрес:
    Москва
    Привет, коллеги!

    Вот не могу понять, почему не работает ilike для русских символов в PostgreSQL:

    Настройки локали сервера такие (SHOW all):
    Код (Text):
    1.  
    2.  lc_collate                      | ru_RU.UTF-8    | Shows the collation order locale.
    3.  lc_ctype                        | ru_RU.UTF-8    | Shows the character classification and case conversion locale.
    4.  lc_messages                     | ru_RU.UTF-8    | Sets the language in which messages are displayed.
    5.  lc_monetary                     | ru_RU.UTF-8    | Sets the locale for formatting monetary amounts.
    6.  lc_numeric                      | ru_RU.UTF-8    | Sets the locale for formatting numbers.
    7.  lc_time                         | ru_RU.UTF-8    | Sets the locale for formatting date and time values.
    (Короче все - ru_RU.UTF8, в том числе те что задаются initdb)

    Создаю базу так:
    Код (Text):
    1. createdb <DB> --encoding=unicode
    После этого ни сортировка ни поиск без учета регистра никак не хотят работать:
    Код (Text):
    1.  
    2. SELECT myfield FROM mytable WHERE myfield ILIKE '%русский%';
    3. SELECT myfield FROM mytable WHERE myfield ILIKE '%Русский%';
    - выдают разные результаты :(

    HELP!!! :)