MySql: ¿forma de actualizar parte de una cadena?

103

Estoy buscando una forma de actualizar solo una parte de una cadena a través de una consulta MySQL.

Por ejemplo, si tengo 10 registros que contienen 'cadena' como parte del valor del campo (es decir, 'algo / cadena', 'algo / cadena busca aquí', 'algo / cadena / etcétera', ¿hay alguna manera de cambiar 'cadena 'a' otro valor 'para cada fila a través de una consulta, de modo que el resultado sea' algo / otro valor ',' algo / otro valor aquí ',' algo / cadena / etcétera ', hay alguna manera de cambiar' otro valor '

n00b0101
fuente

Respuestas:

231

Creo que esto debería funcionar:

UPDATE table
SET field = REPLACE(field, 'string', 'anothervalue')
WHERE field LIKE '%string%';
Kaleb Brasee
fuente
26
UPDATE `table` SET `field` = REPLACE(`field`, 'string', 'anothervalue')
Tatu Ulmanen
fuente
14

Use el LIKEoperador para encontrar las filas que le interesan y actualícelas usando la REPLACEfunción.

Por ejemplo:

UPDATE table_name SET field_name = REPLACE(field_name,'search','replace') WHERE field_name LIKE '%some_value%'
Bernard Chen
fuente
0

¿Algo como esto funciona de alguna manera?

update table_name
set column_name = replace(column_name, 'string%', 'string') 
where column_name like '%string%'
Lukas
fuente