Reputation: 6893
I'm looking for a way to update just a portion of a string via MySQL query.
For example, if I have 10 records all containing string
as part of the field value, is there a way to change string
to anothervalue
for each row via one query?
I.e. for the following:
Change something/string
, something/stringlookhere
, something/string/etcetera
to
something/anothervalue
, something/anothervaluelookhere
, something/string/etcetera
Upvotes: 115
Views: 91731
Reputation: 51965
I think this should work:
UPDATE table
SET field = REPLACE(field, 'string', 'anothervalue')
WHERE field LIKE '%string%';
Upvotes: 262
Reputation: 6567
Use the LIKE
operator to find the rows that you care about and update them using the REPLACE
function.
For example:
UPDATE table_name SET field_name = REPLACE(field_name,'search','replace') WHERE field_name LIKE '%some_value%'
Upvotes: 14
Reputation: 124878
UPDATE `table` SET `field` = REPLACE(`field`, 'string', 'anothervalue')
Upvotes: 27