From: | "Chad Wagner" <chad(dot)wagner(at)gmail(dot)com> |
---|---|
To: | "af300wsm(at)gmail(dot)com" <af300wsm(at)gmail(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: How does one perform a case-insenstive query on test or char fields |
Date: | 2007-01-10 23:11:51 |
Message-ID: | 81961ff50701101511u31fb91dek892afe43a83e0263@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 9 Jan 2007 13:44:32 -0800, af300wsm(at)gmail(dot)com <af300wsm(at)gmail(dot)com> wrote:
>
> SELECT * FROM table WHERE thisfield = 'some text';
>
> How would I rewrite this query to search through the table looking at
> the text in the column "thisfield" for the string "some text" but have
> it perform a case insensitive search?
>
I wouldn't consider this a "search", but rather a lookup. You can find some
tips on how to do this in the link below.
http://archives.postgresql.org/pgsql-php/2003-05/msg00045.php
If you need "thisfield" to be indexed, then I would suggest creating an
index on the expression "LOWER(thisfield)", the below text is directly from
the user guide:
For example, a common way to do case-insensitive comparisons is to use the
lower function:
SELECT * FROM test1 WHERE lower(col1) = 'value';
This query can use an index, if one has been defined on the result of the
lower(col1) operation:
CREATE INDEX test1_lower_col1_idx ON test1 (lower(col1));
You can read more about expression indexes here:
http://www.postgresql.org/docs/8.2/static/indexes-expressional.html
From | Date | Subject | |
---|---|---|---|
Next Message | Jeff Davis | 2007-01-10 23:14:53 | Re: PostgreSQL Connections? |
Previous Message | Richard Broersma Jr | 2007-01-10 23:04:05 | Re: Problems With VIEWS |