From: Bruce Momjian
4.12) What is the Genetic Query Optimizer?
4.13) How do I perform regular expression
- searches and case-insensitive regular expression searches?
+ searches and case-insensitive regular expression searches? How do I
+ use an index for case-insensitive searches?
4.14) In a query, how do I detect if a field
is NULL?
4.15) What is the difference between the
@@ -957,13 +958,29 @@ Maximum number of indexes on a table? unlimited
search.
The ~ operator does regular expression matching, and ~* does case-insensitive regular expression matching. The case-insensitive variant of LIKE is called ILIKE in PostgreSQL 7.1 and later.
+Case-insensitive equality comparisons are normally expressed as: + +
+ SELECT * + FROM tab + WHERE lower(col) = 'abc' ++ + This will not use an standard index. However, if you create a + functional index, it will be used: + +
+ CREATE INDEX tabindex on tab (lower(col)); ++