From: | Lincoln Yeoh <lyeoh(at)pop(dot)jaring(dot)my> |
---|---|
To: | Russ Brown <pickscrape(at)gmail(dot)com>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: regular expressions in query |
Date: | 2005-02-13 11:51:49 |
Message-ID: | 5.2.1.1.1.20050213193924.03cee310@localhost |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
At 09:57 AM 2/13/2005 +0000, Russ Brown wrote:
>I've thought about things like this in the past, and a thought that
>occurred to me was to add a functional index on just_digits(telephone) to
>the table. Would this not allow the above query to use an index while
>searching?
I think it should. But for phone numbers it may be better to reverse the
digits before indexing - usually whilst the area code changes, the last 4
or 5 digits don't change.
This way you can do a LIKE search on *5678. Where the number ends with 5678.
I'm not sure how to get Postgresql to index from the ending to the start of
a string vs the normal from the start to the end, so in my webapp I
reversed it at the application layer. If you are going to do this sort of
thing at the application layer you might as well do the nondigit removal
there too.
e.g.
$phone=~tr/0-9%_//cd; # I allowed the wildcards % and _
$phone=reverse $phone;
You may still wish to store the phone numbers "as is" for display purposes.
Link.
From | Date | Subject | |
---|---|---|---|
Next Message | J. Greenlees | 2005-02-13 12:33:37 | Re: regular expressions in query |
Previous Message | Russ Brown | 2005-02-13 09:57:58 | Re: regular expressions in query |