Cadena de MySQL reemplazar

Tengo una columna que contiene urls (id, url):

http://www.example.com/articles/updates/43 http://www.example.com/articles/updates/866 http://www.example.com/articles/updates/323 http://www.example.com/articles/updates/seo-url http://www.example.com/articles/updates/4?something=test 

Me gustaría cambiar la palabra “actualizaciones” por “noticias”. ¿Es posible hacer esto con un script?

 UPDATE your_table SET your_field = REPLACE(your_field, 'articles/updates/', 'articles/news/') WHERE your_field LIKE '%articles/updates/%' 

Ahora filas que eran como

http://www.example.com/articles/updates/43

estarán

http://www.example.com/articles/news/43

http://www.electrictoolbox.com/mysql-find-replace-text/

Sí, MySQL tiene una función REPLACE ():

 mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww'); -> 'WwWwWw.mysql.com' 

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_replace

Tenga en cuenta que es más fácil si lo convierte en un alias cuando usa SELECT

 SELECT REPLACE(string_column, 'search', 'replace') as url.... 

La función de reemplazo debería funcionar para usted.

 REPLACE(str,from_str,to_str) 

Devuelve la cadena str con todas las ocurrencias de la cadena from_str reemplazada por la cadena to_str. REPLACE() realiza una coincidencia de mayúsculas y minúsculas al buscar from_str.

Además de la respuesta de gmaggio si necesita CAMBIAR y UPDATE dinámicamente de acuerdo con otra columna, puede hacer, por ejemplo:

 UPDATE your_table t1 INNER JOIN other_table t2 ON t1.field_id = t2.field_id SET t1.your_field = IF(LOCATE('articles/updates/', t1.your_field) > 0, REPLACE(t1.your_field, 'articles/updates/', t2.new_folder), t1.your_field) WHERE... 

En mi ejemplo, los articles/news/ cadena articles/news/ se almacenan en other_table t2 y no es necesario utilizar LIKE en la cláusula WHERE .

Simplemente puede usar la función replace (),

con where cláususe-

 update tabelName set columnName=REPLACE(columnName,'from','to') where condition; 

sin donde cláusula-

 update tabelName set columnName=REPLACE(columnName,'from','to'); 

Nota: La consulta anterior si desea actualizar los registros directamente en la tabla, si desea seleccionar la consulta y los datos no deberían verse afectados en la tabla, entonces puede usar la siguiente consulta:

 select REPLACE(columnName,'from','to') as updateRecord;