2009-12-09 34 views
79

Estoy buscando una manera de actualizar solo una parte de una cadena a través de la consulta MySQL.MySql - ¿Cómo actualizar parte de una cadena?

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

+0

duplicado posible de [MySQL buscar y reemplazar un texto en un campo] (http://stackoverflow.com/questions/125230/mysql -search-and-replace-some-text-in-a-field) –

Respuesta

169

Creo que esto debería funcionar:

UPDATE table SET field = REPLACE(field, 'string', 'anothervalue') WHERE field LIKE '%string%'; 
+1

Por supuesto ... gracias ... Érase una vez, supe de esta función ... estúpida gripe. – n00b0101

+1

amigo asombroso, ahorraste todo el día –

+1

PERFECTO !! ¡Salvaste mi día! –

22
UPDATE `table` SET `field` = REPLACE(`field`, 'string', 'anothervalue') 
9

utilizar el operador LIKE para buscar las filas que se preocupa por ellos y actualizar mediante la función REPLACE.

Por ejemplo:

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

FYI: código> explicación, pero ambos son ideales. –

Cuestiones relacionadas