4.08 Jak použít case-(in)sensitive regulární výraz? Jak použít index pro case insensitive hledání?: Porovnání verzí

Z PostgreSQL
Skočit na navigaci Skočit na vyhledávání
imported>WikiSysop
m
 
(Žádný rozdíl)

Aktuální verze z 1. 11. 2007, 01:00

Vyhledávání prostřednictvím regulárních vzorů zajišťuje operátor ~, který je case-sensitive. Jeho case-insensitive varianta je operátor ~*. Case-insensitive variací operátoru LIKE je operátor ILIKE.

Case-insensitive vyhledání se řeší:

SELECT *
FROM tab
WHERE lower(col) = 'abc';

Tento dotaz nepoužije standardní index. Musíte použít tzv. funkcionální index:

CREATE INDEX tabindex ON tab (lower(col));

Pokud index vytvoříme jako unikátní, tak můžeme ukládat řetězce obsahující malá i velká písmena, ale nikoliv řetězce, které se od sebe odlišují jen v malých a velkých písmenech. K zajištění zápisu řetězce obsahující pouze malá nebo pouze velká písmena použijte CHECK kontroly nebo triggery.