RE: search/replace in update - Mailing list pgsql-sql

From Jeff Eckermann
Subject RE: search/replace in update
Date
Msg-id 08CD1781F85AD4118E0800A0C9B8580B094AD7@NEZU
Whole thread Raw
In response to search/replace in update  (Gary Stainburn <gary.stainburn@ringways.co.uk>)
Responses Re: RE: search/replace in update
Re: search/replace in update
List 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@agliodbs.com]
> Sent:    Thursday, June 14, 2001 9:52 AM
> To:    Gary Stainburn
> Cc:    pgsql-sql@postgresql.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@agliodbs.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


pgsql-sql by date:

Previous
From: Vivek Khera
Date:
Subject: Re: Re: Timestamp without time zone
Next
From: Tom Lane
Date:
Subject: Re: Re: Timestamp without time zone