Link to home
Start Free TrialLog in
Avatar of tmaususer
tmaususerFlag for United States of America

asked on

Sql Syntax for a replacment

I have never done a mass update to replace records (newbie) in a table so I am looking for some help with the syntax which I'm sure is easy.
I have a table called Parts. In that table there I have a field name called femail. I have records in that field name for email addresses. So records do not require an email address so they are null values.

For the records they contain multiple email addresses in that field which are all the same. So for example:

Femail
test1@test.com; test2@test.com

So my question is I want to do a mass replacment for the test1@test.com email and replace all of those records with JohnDoe@test.com
So the end result would be where test1@test.com was it should now show:

JohnDoe@test.com; test2@test.com



How would I accomplish this?
Avatar of Vitor Montalvão
Vitor Montalvão
Flag of Switzerland image

UPDATE Parts
SET femail = REPLACE(femail,'test1@test.com','JohnDoe@test.com')
WHERE femail LIKE 'test1@test.com'

Open in new window

Test this command in a development database before running it in Production environment.
WHERE femail LIKE 'test1@test.com%' --<< nb: the percent sign

if the column femail STARTS with test1@test.com than that where clause will work

but:

WHERE femail LIKE '%test1@test.com%'

if the column femail CONTAINS test1@test.com than that where clause will work (but will be slower)

{+edit}
it is usually prudent to use a select query before trialing an update query

e.g.

select *
from parts
WHERE femail LIKE 'test1@test.com%' --<< nb: the percent sign

so you can assess if the filter is getting the right rows.
ASKER CERTIFIED SOLUTION
Avatar of Vitor Montalvão
Vitor Montalvão
Flag of Switzerland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
it happens :)
Avatar of tmaususer

ASKER

Victor the syntax you provided did not change anything
What this returns?
SELECT *
FROM Parts
WHERE femail LIKE '%test1@test.com%'

Open in new window

--it is a very specific replace " the test1@test.com "

UPDATE Parts
SET femail = REPLACE(femail,'test1@test.com','JohnDoe@test.com')
WHERE femail ='test1@test.com'


also read
"REPLACE"
https://msdn.microsoft.com/en-us/library/ms186862.aspx