Determining if "in a text set" - Mailing list pgsql-general

From Richi Plana
Subject Determining if "in a text set"
Date
Msg-id Pine.LNX.4.04.9903271223140.22809-100000@jaguar.mozcom.com
Whole thread Raw
List pgsql-general
Hi,

I have a table/class with a text field which contains a single word
(possibly trailed by whitespaces). Given a phrase (a text literal composed
of words separated by one or more whitespaces), what's the best way to
SELECT those tuples with fields containing instances that match exactly
one of the words in the given string?

Example:

Table:
Tuple#   ...   FieldN
1        ...   'MON'
2        ...   'TUE'
3        ...   'THURS'
4        ...   'THU'
5        ...   'FRI'

Given phrase:
'MON TUE WED THURS'
Tuple 1 will match
Tuple 2 will match
Tuple 3 will match
Tuple 4 will NOT match
Tuple 5 will NOT match

Right now, I'm extracting (using strtok(), 8^P) each word from the given
phrase and using "SELECT * FROM {class} where FieldN LIKE '%{word}%'", but
it's terribly slow, relies on strtok() to parse words, and Tuple 4 above
will match.


L   L Richi Plana 8^)         ,-,-.     ,-,-.     ,-,-.     ,-,-.     ,-
LL LL Systems Administrator  / / \ \   / / \ \   / / \ \   / / \ \   / /
LLLLL Mosaic Communications, Inc. \ \ / /   \ \ / /   \ \ / /   \ \ / /
LLLLL mailto:richip@mozcom.com     `-'-'     `-'-'     `-'-'     `-'-'
------------------------------------------------------------------------
P G P Key available at http://www2.mozcom.com/~richip/richip.asc
Tired of Spam? Join this CAUCE! http://www.cauce.org/


pgsql-general by date:

Previous
From: John Steely
Date:
Subject: Re: How do I "Insert" using a type member?
Next
From: Peter Davidse
Date:
Subject: Postgres and Perl5 and apache