mysql-apicultur

A veces nos sobran algunos caracteres de algún campo, una carga masiva de datos, unos usuarios creativos y nos encontramos con un campo con unos caracteres que nos complican la vida o nos afean nuestra maravillosa tabla.

Para solucionar el problema os ofrezco algunas posibilidades. Recordad que con esta herramienta no hay vuelta atrás así que ser muy cautos con esto.

Supongamos que necesitamos sustituir todas las apariciones de un carácter cualquiera por otro:

UPDATE tabla SET campo=REPLACE(campo,’caracter a reemplazar’,’caracter reemplazado ‘);
UPDATE palabrasEventos SET texto=REPLACE(texto,'(‘,’ ‘);

Obviamente en vez de un caracter podemos reemplazar una cadena de caracteres por otra o por nada. ¿Suena bien verdad? La verdad es que sí, pero recordad que en estos entornos no hay vuelta atrás o Ctrl-Z, con lo que el daño que se haga será irreparable. Antes de hacer nada de esto os recomiendo alguna o todas estas cosas:

  1. Hacer una copia de seguridad simple de la tabla [15 segundos].
  2. Guardar copia de los comandos que vayas haciendo después de hacer la copia de seguridad, por si fallas en el cuarto paso y tienes que volver a partir de tu copia de seguridad.
  3. Poner condiciones a los campos en los que se hace el cambio.
  4. Que el campo de destino ser diferente del nuevo. Cread un campo nuevo en el registro, trabajad sobre él y una vez visto que todo va bien reemplazáis el campo original con el modificado.

UPDATE tabla SET campoInicial=campoModificado;

Puede que necesitemos modificar el texto de los campos que cumplan alguna condición, para ello podríais usar:

UPDATE tabla SET campo=REPLACE(campo,’caracter a reemplazar’,’caracter reemplazado ‘)

WHERE campo = valor;
UPDATE palabrasEventos SET texto=REPLACE(texto,'(‘,’ ‘)

WHERE campo LIKE “%,”;

Con esto puede que limitemos el daño, pero recordad que serán sustituidas todas las comas de los campos que cumplan esa condición. Así que mucho cuidado.

Para resolver el problema de eliminar caracteres molesto al principio o al final de un campo necesitáis una instrucción un poco más compleja que os cuento aquí.

Por último os dejo una lista de instrucciones con algunos de esos caracteres molestos a sustituir, por si no os vienen a la memoria cuando más falta hacen.

UPDATE tabla SET campo=REPLACE(campo,’;’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’:’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’.’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’,’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,'(‘,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’)’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,'[‘,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’]’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,'{‘,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’}’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’°’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’º’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’%’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’$’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’&’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’0′,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’1′,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’2′,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’3′,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’4′,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’5′,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’6′,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’7′,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’8′,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’9′,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’¿’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’?’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’¡’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’!’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,'”‘,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’#’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’>’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,'<‘,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’=’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’+’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’*’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’«’,’ ‘);
UPDATE tabla SET campo=REPLACE(campo,’»’,’ ‘);

Yo tiendo a reemplazar los caracteres por espacios en blanco, ya que no quiero que se “peguen” palabras, así que al final me encuentro con campos plagados de espacios en blanco. Para limpiarlos sustituyo dos espacios en blanco por uno:

UPDATE tabla SET campo=REPLACE(campo,’  ‘,’ ‘);

Como se pueden acumular muchos espacios seguidos, ejecutad esta instrucción varias veces hasta que no afecte a ningún registro, tendréis los registros límpios de caracteres raros y las palabras separadas por espacios en blanco. ¿Tienes curiosidad por ver para qué puede servir esto? Aquí te cuento una aplicación posible de esto.

Pues hasta aquí estas sustituciones simples. Espero que te hayan sido útiles.

¡Atención! estas instrucciones son para sistemas de tablas sencillos, y aislados. Tu debes ser el dueño de estos datos para poder hacer todas estas operaciones y además saber muy bien lo que haces. Tu administrador de sistemas te puede matar si haces alguna de estas instrucciones sin su permiso.

Share →