Reemplazar cadenas en MySQL

SQLSeguro que alguna vez habéis tenido una cadena concreta repetida en más de una fila de MySQL, y habéis querido reemplazarlo por otro de forma masiva. Esto es muy usual cuando cambiamos de dominio una página de WordPress y tenemos que actualizar toda la base de datos poniendo la dirección del dominio nuevo.

Esta operación era un auténtico rollazo… hasta ahora. En realidad es muy simple de cambiar. Todo lo que tenemos que hacer es ejecutar la siguiente sentencia SQL:

UPDATE <tabla> SET <campo> = REPLACE ( <columna>, '<cadena antigua>', '<cadena nueva>' )

Donde <tabla> es la tabla en la que queremos realizar los cambios, y <columna> es la columna donde vamos a buscar la <cadena antigua> para sustituir todas las coincidencias con <cadena nueva>. No es necesario establecer los %…% que usamos en MySQL para denotar que hay texto delante y detrás. Vamos a ver un ejemplo, la tabla «coches».

ModeloColorPuertas
Renault ClioRojo6 puertas
Ford FiestaAzul5 puertas
Citroen DS4Blanco6 puertas

En esta ocasión vamos a sustituir en la tabla «coches», columna «puertas», donde encuentre un 6 debe escribir un 3.

UPDATE coches SET puertas = REPLACE ( puertas, '6', '3' );

Y el resultado viene a ser este:

ModeloColorPuertas
Renault ClioRojo3 puertas
Ford FiestaAzul5 puertas
Citroen DS4Blanco3 puertas

Por supuesto, también podríamos haber limitado la consulta a ciertos criterios, con una clausula WHERE:

UPDATE coches SET puertas = REPLACE ( puertas, '6', '3' ) WHERE color = "Blanco";

Cuyo resultado sería este otro:

ModeloColorPuertas
Renault ClioRojo6 puertas
Ford FiestaAzul5 puertas
Citroen DS4Blanco3 puertas

Para los que estéis de mudanza de dominios con WordPress, os recomiendo que miréis en las tablas wp_options (option_value), wp_posts (post_content y guid) y wp_postmeta (meta_value), que suelen tener la URL de la web.

¡Espero que os haya sido util este pequeño truco!

“SQL, Lisp y Haskell son los únicos lenguajes de programación que he visto
en los que uno pasa más tiempo pensando que escribiendo”

    .- Philip Greenspun

¿Te ha gustado el artículo?
1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (15 votos, promedio: 4,73 sobre 5)
Loading...

Suscríbete. Déjanos tu email y recibe contenido genial cada mes


Artículo escrito por

¡Exprésate! Dejanos tu comentario

Tu dirección de correo electrónico no será publicada.

4 Comentarios

Humberto Fretes

Muy bien explicado! Gracias.

Roger

Muy bien explicado. Muchas gracias por la claridad.

Martin

Muchas gracias Rubén me ha servido mucho para cambiar 1200 campos de una base de datos con la opción de Where ya que no quería cambiarlo en toda la columna. Comparto tu artículo en redes

José Andrés

Muchas gracias, me sirvió de ayuda en la "mudanza".