From: | Jeff Eckermann <jeckermann(at)verio(dot)net> |
---|---|
To: | "'Josh Berkus'" <josh(at)agliodbs(dot)com>, Gary Stainburn <gary(dot)stainburn(at)ringways(dot)co(dot)uk> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | RE: search/replace in update |
Date: | 2001-06-14 15:42:23 |
Message-ID: | 08CD1781F85AD4118E0800A0C9B8580B094AD7@NEZU |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Which function would you be suggesting? I hope not "translate". That works
on characters, not strings. Easy to confuse if you don't read closely
enough, as I found to my cost.
Easiest way using these functions would be:
UPDATE table
SET mobile_number = '07889' || substr (mobile_number, 5)
WHERE mobile_number LIKE '0589%';
Alternatively, you could define a generic search/replace function like:
CREATE FUNCTION search_replace (text, text, text)
RETURNS text AS '
RETURN @_[0] =~ s/@_[1]/@_[2]/
' LANGUAGE 'plperl';
Which would be available anytime for similar purposes (credit to Tom Lane
for the idea).
> -----Original Message-----
> From: Josh Berkus [SMTP:josh(at)agliodbs(dot)com]
> Sent: Thursday, June 14, 2001 9:52 AM
> To: Gary Stainburn
> Cc: pgsql-sql(at)postgresql(dot)org
> Subject: Re: search/replace in update
>
> Gary,
>
> > This means that e.g. all mobile numbers that used to start 0589 now
> > start 07889.
> >
> > Is there a way in SQL to update the phone number in-place?
>
> Postgresql has a nifty string substitution function. For this and other
> character manipulation functions, see:
>
> http://www.postgresql.org/idocs/index.php?functions-string.html
>
> You should be able to fairly easily swap out "07889" and replace it with
> "0589".
>
> -Josh
>
>
>
> ______AGLIO DATABASE SOLUTIONS___________________________
> Josh Berkus
> Complete information technology josh(at)agliodbs(dot)com
> and data management solutions (415) 565-7293
> for law firms, small businesses fax 621-2533
> and non-profit organizations. San Francisco
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2001-06-14 15:51:35 | Re: performance issues |
Previous Message | Alex Pilosov | 2001-06-14 15:30:54 | Re: Re: Timestamp without time zone |