Re: Help on phrasee matching in WHERE (colum~*'.*ab*.')

From: "Oliver Elphick" <olly(at)lfix(dot)co(dot)uk>
To: Gabor Szilagyi <Gabor(dot)Szilagyi(at)nyo(dot)unep(dot)org>
Cc: pgsql-novice(at)postgresql(dot)org
Subject: Re: Help on phrasee matching in WHERE (colum~*'.*ab*.')
Date: 2001-03-13 05:37:18
Message-ID: 200103130537.f2D5bJG23925@linda.lfix.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

Gabor Szilagyi wrote:
>I am trying to pick out rows from the database which contains a
>particular string.
>
>I am using the following
>
>SELECT * FROM in_table WHERE n_from ~* '.*nb*.
>
>(Well actually a bunch of this condition is AND/OR -ed together)
>
>My trouble is this: If I enter only a two character string as above,
>it will not only matches string containing "nb" but all those which
>contains the letter "n".

I think you are slightly confused about how pattern-matching works.

Your pattern match says "0-many characters followed by `n' followed by
0-many `b's". That is why `n' alone matches it.

If you simply want any string containing `nb' (case-insensitive)
use "n_from ~* 'nb'". You don't have to say anything at all about
the parts of the string you are not interested in.

--
Oliver Elphick Oliver(dot)Elphick(at)lfix(dot)co(dot)uk
Isle of Wight http://www.lfix.co.uk/oliver
PGP: 1024R/32B8FAA1: 97 EA 1D 47 72 3F 28 47 6B 7E 39 CC 56 E4 C1 47
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839 932A 614D 4C34 3E1D 0C1C
========================================
"Who is like Thee among the gods, O Lord? Who is like
Thee, majestic in holiness, awesome in praises,
working wonders?"
Exodus 15:11

Browse pgsql-novice by date

  From Date Subject
Next Message Ken Corey 2001-03-13 10:57:54 Fwd: Silly question about numbering of rows?
Previous Message Rob Arnold 2001-03-13 02:25:32 Re: Help on phrasee matching in WHERE (colum~*'.*ab*.')