Thread: posix pattern matching
Приветствую
Почитал http://www.postgresql.org/docs/8.4/interactive/functions-matching.html , появился вопрос.
Стоит Postgresql 8.4.4. Есть таблица со списком стран в большом регистре, в частности:
=# select name from countries where name ~ 'РОССИ';
name
--------
РОССИЯ
(1 row)
А когда пробую пробую сделать case insensitive выборку через POSIX :
=# select name from countries where name ~* 'росси';
name
------
(0 rows)
то как видно не получаю ничего.
Попробовал сделать подобное для английского - работает.
Есть мысли по этому поводу?
Спасибо
Почитал http://www.postgresql.org/docs/8.4/interactive/functions-matching.html , появился вопрос.
Стоит Postgresql 8.4.4. Есть таблица со списком стран в большом регистре, в частности:
=# select name from countries where name ~ 'РОССИ';
name
--------
РОССИЯ
(1 row)
А когда пробую пробую сделать case insensitive выборку через POSIX :
=# select name from countries where name ~* 'росси';
name
------
(0 rows)
то как видно не получаю ничего.
Попробовал сделать подобное для английского - работает.
Есть мысли по этому поводу?
Спасибо
Stanislav Orlenko <orlenko.stas@gmail.com> writes: > Стоит Postgresql 8.4.4. Есть таблица со списком стран в большом регистре, в частности: > =# select name from countries where name ~ 'РОССИ'; > name > -------- > РОССИЯ > (1 row) > > А когда пробую пробую сделать case insensitive выборку через POSIX : > > =# select name from countries where name ~* 'росси'; > name > ------ > (0 rows) > > то как видно не получаю ничего. > > Попробовал сделать подобное для английского - работает. > > Есть мысли по этому поводу? У Вас видимо кодировка базы UTF-8, в UTF-8 не работают классы символов и регистронезависимое сравнение, это доделали только в 9.0 -- С уважением, Сергей Бурладян