Вопрос, в принципе, отражает тема:
Итак, есть база с текстовыми полями заполненная русскими и англицкими словами:
Код: Выделить всё
SELECT * FROM bla;
id | text
----+-----------
1 | dfsfs
2 | хрень
3 | хаба-хаба
(записей: 3)теперь так:
Код: Выделить всё
artem=# SELECT * FROM bla WHERE text ILIKE '%df%';
id | text
----+-------
1 | dfsfs
(1 запись)нормально. Теперь так(обратите внимание на регистр в точке '%df%'):
Код: Выделить всё
artem=# SELECT * FROM bla WHERE text ILIKE '%Df%';
id | text
----+-------
1 | dfsfs
(1 запись)Тоже всё как полагается - поиск независимо от регистра. А вот теперь наш Велики и могучий:
Код: Выделить всё
artem=# SELECT * FROM bla WHERE text ILIKE '%ба%';
id | text
----+-----------
3 | хаба-хаба
(1 запись)работает, а так:
Код: Выделить всё
artem=# SELECT * FROM bla WHERE text ILIKE '%бА%';
id | text
----+------
(записей: 0)не работает!
\l выдаёт, что базы в кодировке UTF8, вроде как всё в норме.
postgres=# \l
Список баз данных
Имя | Владелец | Кодировка
--------------+----------+-----------
artem | postgres | UTF8
(записей: 1)
ОС - Debain 4 rc3
Версия postgres - 8.1.8-1
P.S. После долгих поисков в интернете, я нашёл пару таких вопросов. Но ответов на них нет.