Re: Case Insensitive Searching? - Mailing list pgsql-novice

From Josh Berkus
Subject Re: Case Insensitive Searching?
Date
Msg-id 200305251258.54689.josh@agliodbs.com
Whole thread Raw
In response to Case Insensitive Searching?  ("Ben Schneider" <bcschnei@attbi.com>)
List pgsql-novice
Ben,

> So the question is, how do I perform a case insensitive search? Is there a
> DB setting I can set to ignore the case?

To the latter: No.

To the former, there are four ways that you can do a case-insensitive search
in PostgreSQL:

1) Using ILIKE:    SELECT * FROM sometable WHERE textfield ILIKE 'value%';
2) Using Regexp operators (see Functions and Operators in the docs):
    SELECT * FROM sometable WHERE textfield ~* 'value';
3) Using UPPER() or LOWER() to change the case of the field before comparison;
this approach can be better than 1) or 2) because these functions may be
indexed, and thus if you are doing a "begins with" or "exact match" search
your query may be indexed:
    SELECT * FROM sometable WHERE UPPER(textfield) LIKE (UPPER('value') || '%');
4) If most of your searches are "anywhere in field" searches on large text
fields, I'd reccomend a look at the two "full text search" tools available in
PostgreSQL, one in the /contrib of your source, the second from openFTS.org.

Overally, I would strongly recommend that you buy and read an introcductory
PostgreSQL book before proceeding further with your project.

--
Josh Berkus
Aglio Database Solutions
San Francisco

pgsql-novice by date:

Previous
From: nolan@celery.tssi.com
Date:
Subject: Re: psql without password
Next
From: Nabil Sayegh
Date:
Subject: Re: Support for Synonyms?