4.08 Jak použít case-(in)sensitive regulární výraz? Jak použít index pro case insensitive hledání?
Skočit na navigaci
Skočit na vyhledávání
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.