Inteligentni hledani bez ohledu na velikost a diakritiku

Jan Serak sherry na pikebo.cz
Pondělí Říjen 30 13:33:07 CET 2000


"Jaromír Skřivan" wrote:
> 
> Dobry den,
> 
>  resim v MySQL nasledujici problem. Na webove aplikaci muze uzivatel
> jednoduse hledat dle zadaneho slova. Potrebuji, aby mi prislusny SELECT
> vracel odpovedi bez ohledu na velikosti pismen retezce, ktery uzivatel
> zadal, ale take bez ohledu na diakritiku a  v tom je ten problem. MySQL dela
> defaultne kodovani iso-8859-1. Nevite nekdo, jestli existuje nejaka funkce,
> ktera by dokazala ve volani dotazu u hodnoty daneho sloupce prevest z
> diakritiky na us-ascii, tj.napr bych volal nasledujici:
> 
>  select id, nazev, popid
>  from odkaz
>  where il1_to_ascii(nazev) = $zadany_retezec
> 
> kde $zadany retezec obsahuje co uzivatel zadal a uz bez diakritiky.
> Jde mi o to, abych ty data dostal primo z databaze, ne abych je z databaze
> vycucnul vsechny a teprve potom na urovni skriptu tu diakritiku orezaval.

Rekl bych, ze to vyjde dost nastejno. Predpokladejme, ze existuje funkce
il1_to_ascii(). Jejim pouzitim vyloucite pouziti pripadneho indexu na
sloupci nazev a tabulku bude nutne prolezt sekvencne od zacatku do konce.
V takovem pripade je lhostejne, jestli zaznamy, ktere nevyhovuji zadane
podmince vyhaze MySQL, nebo nejaky skript. Na vykonu to uz nic moc
nezmeni.

> 
> Jestli takova funkce neexistuje, da se napsat? kdyztak jakym zpusobem?

Nevim. Ale pro Vase potreby je stejne nepouzitelna.

							Jan Serak


Další informace o konferenci Databases