agora inbox for pgsql-sql@postgresql.org  
help / color / mirror / Atom feed
From: Guy Fraser <guy@incentre.net>
To: pgsql-sql@postgresql.org
Subject: Re: Regular Expressions
Date: Wed, 21 Mar 2007 14:32:26 -0600
Message-ID: <1174509146.26600.39.camel@sigurd.incentre.net> (raw)
In-Reply-To: <46016D43.9030300@fastcon.com.br>
References: <46013B89.4040603@fastcon.com.br>
	<1174487806.26600.15.camel@sigurd.incentre.net>
	<46016D43.9030300@fastcon.com.br>

On Wed, 2007-03-21 at 14:37 -0300, Ezequias R. da Rocha wrote:
> Guy Fraser escreveu:
> > On Wed, 2007-03-21 at 11:04 -0300, Ezequias R. da Rocha wrote:
> >   
> >> Hi list,
> >>
> >> I would like to know if postgresql has a Regular Expressions (Regex) 
> >> implemented already.
> >>
> >> With it we could implement queries like
> >>
> >> Select * from myClientes where name = 'E[zs]equias'
> >>
> >>     
> > Case Sensitive Regular Match ~
> > Case Insensitive Regular Match ~*
> > Negated Case Sensitive Regular Match !~
> > Negated Case Insensitive Regular Match !~*
> >
> > Select * from myClientes where name ~ 'E[zs]equias'
> >
> >   
> >> where the result occurs even if the field has Ezequias or Esequias.
> >>
> >> Regards
> >> Ezequias
> >>
> >> ---------------------------(end of broadcast)---------------------------
> >> TIP 2: Don't 'kill -9' the postmaster
> >>
> >>     
> Great I am thinking of putting my like to rest. I felt it faster than 
> "like" statement, have you any information about that ?
> 

No I don't know if regular expressions are faster than "LIKE" but 
I think they are more flexible. When developing queries, I usually 
try different methods of matching to find out what works best for 
each circumstance. Some times upper() lower() and substr() with an 
"=" are more effective than other methods.

One of the more powerful features of PostgreSQL is the ability to 
use sub-selects to reduce the time required to process a subset of 
data from a larger volume of data.

Example :

select
 * 
from (
 select
  ss_time,
  ss_date,
  ss_type,
  ss_data
 from
  full_set
 where
  ss_type in ('type_a','type_x')
 ) as sub_set 
where
 upper(ss_data) ~ '[A-Z][0-9][A-Z] ?[0-9][A-Z][0-9]'
order by
 ss_time,
 ss_date,
 ss_type 
; 


> Ezequias
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 7: You can help support the PostgreSQL project by donating at
> 
>                 http://www.postgresql.org/about/donate
> 




view thread (18+ messages)  latest in thread

Message-ID: <1174509146.26600.39.camel@sigurd.incentre.net>
Permalink:  ../1174509146.26600.39.camel@sigurd.incentre.net/
Also on:    postgresql.org/message-id/1174509146.26600.39.camel@sigurd.incentre.net

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: guy@incentre.net
  Subject: Re: Regular Expressions
  In-Reply-To: <1174509146.26600.39.camel@sigurd.incentre.net>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox