postgres a ceske case insensitive vyhledavani

Petr Vileta petr na practisoft.cz
Úterý Září 23 09:57:04 CEST 2003


> Potreboval bych v postgresu 7.3x vyhledava case insensitive.
> Databazi mam v UTF-8 (i tak vytvorenou), ale at delam jakekoliv kousky,
tak
> proste nevyhleda a nevyhleda, nebo se chova extremne divne. Query prijde
> pres jdbc take v unicode a je ok.
> ILIKE - nevyhleda treba z s hackem a nefunguje case insensitive
> LIKE - k nivcemu, kdyz prijde diakritika
> lovercase fce ... asi neumi unicode
> lowercase(convert(policko, 'UTF-8', 'LATIN2')) LIKE
> lowercase(convert('retezec%','UTF-8','LATIN2')) ...taky na baterky a jeste
> ke vsemu se mi tahle konstrukce nelibi
>
>
> Pouziva nekdo nejake opravdu funkcni reseni??
Asi me tady spousta lidi zkritizuje, ale kvuli podobnym problemum s
vyhledavanim v MySQL jsem presel na reseni, ktere by se nechalo nazvat
"brute stupid" :-)
Od kazdeho textoveho pole, ve kterem chci vyhledavat si udelam duplikat, kam
pri insertu nebo updatu vlozim kopii textu zbavenou diakritiky a prevedenou
na upercase. Je to trocha programovani navic a tabulky jsou ponekud
objemnejsi, ale vyhledevani funguje naprosto spolehlive.

create table test (jmeno char(30), prijmeni char(30), ajmeno char(30),
aprijmeni char(30));
insert into test set jmeno='Jiří', prijmeni='Žáček', ajmeno='JIRI',
aprijmeni='ZACEK';

:-)))

--
Petr




Další informace o konferenci Linux