Re: select exact term

From: Marc Fromm <Marc(dot)Fromm(at)wwu(dot)edu>
To: Craig James <cjames(at)emolecules(dot)com>
Cc: "pgsql-admin(at)postgresql(dot)org" <pgsql-admin(at)postgresql(dot)org>
Subject: Re: select exact term
Date: 2013-03-28 19:02:16
Message-ID: 93361C67E4EE844A80935863A4FF4B6C0632FC7D@Exch2010MB-2.univ.dir.wwu.edu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

I am struggling with the syntax. In php I create my where clause as shown, using ~* for case insensitive:
$search = "art";
$strSQL2 = "WHERE (title ~* [[:<:]]'$search'[[:>:]] OR description ~* [[:<:]]'$search'[[:>:]]) ";

When executed zero records are returned even though the ILIKE statement shown below returns records that do have the word art.

$search = "art";
$strSQL2 = "WHERE (title ILIKE '%$search%' OR description ILIKE '%$search%') ";

Thanks for the insight.

From: Craig James [mailto:cjames(at)emolecules(dot)com]
Sent: Thursday, March 28, 2013 11:05 AM
To: Marc Fromm
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: [ADMIN] select exact term

On Thu, Mar 28, 2013 at 10:51 AM, Marc Fromm <Marc(dot)Fromm(at)wwu(dot)edu<mailto:Marc(dot)Fromm(at)wwu(dot)edu>> wrote:
Is there a way to create a select statement that will select a record if the exact term is found in a field that contains the text to describe something?

If I create a select statement using WHERE description LIKE 'art' I get every record that has words like depart, start and so on.
If I create a select statement using WHERE description = 'art' I get no results even though the word art is in some records description field.

Use a regular expression instead of LIKE, and the left- and right-word-boundary expressions (see section 9.7 of the Postgres manual):

db=> select 'the quick brown fox' ~ '[[:<:]]brown[[:>:]]';
?column?
----------
t

=> select 'the quick brown fox' ~ '[[:<:]]own[[:>:]]';
?column?
----------
f

Craig

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Tom Lane 2013-03-28 20:06:59 Re: select exact term
Previous Message Craig James 2013-03-28 18:05:16 Re: select exact term