MySql modificar un texto determinado en el campo de un registro

Veamos un ejemplo de cómo en MySql modificar un texto en un campo de una tabla de la base de datos con una sentencia SQL.

Tutoriales MySql

Empecemos con el ejemplo. Supongamos que tenemos una tabla llamada productos, y que ésta tiene un campo llamado nombre. Y un ejemplo de lineas de la base de datos seria:

// Id Nombre Descripción
1 | Cava Mesilla | Un cava que...
2 | Cava Mesilla fina | Excelente cava...
...

Y así tendríamos un listado de productos en nuestra base de datos. Imaginad ahora que nos comentan que en nuestro ejemplo, Cava Masilla, se escribe con dos s…

Debemos modicar todos los Masilla que haya en el campo Nombre de la tabla Productos.

La sentencia para modificar un texto determinado en un camp en Mysql es:

UPDATE tabla SET campo = replace(campo, "texto a modificar", "texto nuevo") WHERE id=12;

Llevado a nuestro ejemplo, tendríamos el siguiente código:

UPDATE Productos SET Nombre = replace(Nombre, "Masilla", "Massilla") WHERE id=1;

Si os fijáis, al campo Nombre le asignamos el resultado de la función replace de mysql. A esta función le pasamos el campo donde está el texto a modificar, el texto a modificar, y el texto nuevo.

Aquí os mostramos como hacerlo con un registro determinado (Id=1). Pero también podríamos hacerlo en todos los registros:

UPDATE Productos SET Nombre = replace(Nombre, "Masilla", "Massilla");

Esta acción haría un barrido en todos los registros. Pero es muy peligroso. Aquí está claro que es muy claro lo que hay que modificar, pero en otros casos podríamos liarla. Imaginad esta sentencia:

UPDATE Productos SET Nombre = replace(Nombre, "Que", "Quee");

Hay productos que se llaman Pastas Que, y queremos modificarlo por Quee, que es como realmente se llaman. Muy bien. Pero que pasaría con este registro:

// Id Nombre Descripción
1 | Palmeras Que | Palmeras de chocolate...
2 | Bollo Que | Bollos de chocolate...
3 | Queso manchego | El mejor queso que hay
...

Lógicamente en nuestra base de datos MySql pasamos a modificar el texto Que del campo Nombre, pero surge el error que no teníamos controlado, Queso, se le añade una S:

// Id Nombre Descripción
1 | Palmeras Ques | Palmeras de chocolate...
2 | Bollo Ques | Bollos de chocolate...
3 | Quesso manchego | El mejor queso que hay
...

Por eso del peligro de hacer cambios masivos en una base de datos. id con mucho cuidado y haced copias de seguridad antes de hacer cambios masivos. Volver atrás es complicadísimo, por no decir que se puede complicar aún más.

Espero que os sea de utilizad