Cualquiera que tenga que gestionar una base de datos MySQL o MariaDB se ha encontrado en algún momento con la necesidad de reemplazar o borrar recursivamente una cadena dentro de las filas de la base de datos. Normalmente, este tipo de cosas se hacen con scripts especialmente hechos para resolver el problema, pero también hay una forma mucho más rápida de hacerlo.
Es importante que antes de proceder a la lectura y aplicación de este artículo, sepas lo que es una base de datos, que puedas hacerte con ella y que hagas una copia de seguridad. Es fácil cometer errores que pueden causar estragos utilizando este sistema, ya que se puede olvidar algo o utilizar los comodines de forma incorrecta.
Este artículo está hecho como un recordatorio para aquellos que ya saben cómo meter las manos dentro de una base de datos utilizando las herramientas y clientes adecuados..
El comando en cuestión es REPLACE y en este caso se puede utilizar junto con el comando UPDATE. La sintaxis genérica del comando es:
USE database_name;
UPDATE table_name set column_name=REPLACE(column_name,'text to search','new text');
El comando también puede ir seguido de la cláusula WHERE, que se utiliza para limitar el número de registros a buscar al número que realmente necesitamos.
Para que el concepto quede más claro, le daré un ejemplo a continuación. Supongamos que hemos insertado accidentalmente un texto que empieza por un espacio en algunas filas de nuestra base de datos. Si quisiera eliminar el espacio al principio de cada línea en la que se insertó por error, escribiría:
UPDATE table_name set column_name=REPLACE(column_name,' ','') WHERE column_name LIKE ' %';
En este caso, el carácter a buscar es el espacio y debe ser sustituido por nada, es decir, los dos superíndices uno al lado del otro sin espacios. La cláusula WHERE del ejemplo dice que la sustitución sólo debe hacerse en las filas que comienzan con un espacio. Tenga en cuenta que el carácter de porcentaje, que se utiliza como comodín, no sigue a la primera comilla en este caso porque no buscamos todos los espacios en las cadenas, sino sólo el espacio al principio de la cadena.
Si encuentras algo poco claro, no dudes en ponerlo en los comentarios y estaré encantado de responder a cualquier pregunta que tengas. Pórtate bien y trata de no ensuciar.