Reemplazar texto con caracteres extraños en MySQL

Bienvenidos a VerTutoriales.com, en esta ocasión vamos a ver como realizar un reemplazo de texto dentro de mysql, en mi caso fué un problema a la hora de migrar la base de datos que la codificación me la cambió a la hora de importar y exportar y una vez puesta la base de datos en producción denuevo no pude realizar la copia correctamente con su juego de caracteres para que no saliera con esos caracteres raros, así que averiguandolo, encontré la consulta exacta para esta labor.

La consulta de actualización para reemplazar el texto es muy sencilla, por razones obvias se ha de realizar tantas veces como simbolos raros queramos cambiar. Veamos:

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, 'í‘', 'Ñ');

Así de simple, si quisierais reemplazar más letras o simplemente un texto cualquiera podeis simplemente cambiar la función replace(), teniendo en cuenta que recibe tres parámetros, el primero es el campo que que quereis cambiar, el segundo lo que buscará, y el tercero por lo que lo cambiará.

¿Para qué lo habeis necesitado?

Un saludo!

Te puede interesar:

10 comentarios

  • angel commented on 12 junio, 2013 Reply

    realmente la solucion mas sencilla que he encontrado, con el phpmyadmin he solucionado los caracteres raros en un 5 minutos..

    • VideoTutoriales commented on 12 junio, 2013 Reply

      Supongo que al realizar alguna migración te habrá ocurrido algo parecido, ¿no?
      Me alegro que te haya funcionado, a mi me ha salvado de algún que otro problema después de cambiar de servidor. Quizás cambiar los símbolos extraños o “raros” de esta forma en la base de datos no sea lo más óptimo, pero si es verdad que es rápido 😉

      Gracias por el comentario! Salud!

  • Erik commented on 13 agosto, 2013 Reply

    Extraordinario me fue de gran ayuda

    • VideoTutoriales commented on 14 agosto, 2013 Reply

      Me alegro! hay que tener en cuenta la codificación de la base de datos para que los caracteres y letras no salgan con símbolos “raros”

      Un saludo!

  • ricardo avalos commented on 12 septiembre, 2014 Reply

    Gran dato muchas gracias!!! De verdad me salvaste de un gran problema!.

    Para terminar y completar esta genial ayuda.. cual sería el reemplazo para el caracter ¡

    Nuevamente Gracias!!

    • videotutoriales commented on 12 septiembre, 2014 Reply

      Buenas Ricardo, me alegro de que te ayudara. (aunque sea en parte)

      Con respecto a tu pregunta, los caractéres que saqué, fueron por deducción, teniendo en cuenta que eran palabras con acentos y demás, conocía la letra que iba en el lugar del símbolo “extraño”, supongo que podrás hacerlo de igual manera, donde va el símbolo ¡ tendrá que ir una letra, utiliza el contexto de la frase a ver si así lo averiguas, si lo haces, pásate por aquí para compartirlo 😉

      Gracias!

  • eduardo gomez commented on 21 julio, 2016 Reply

    muy bueno gracias amigo

    • Carlos Dk commented on 10 agosto, 2016 Reply

      Nada, me alegro de que te sirviera.

  • Dani Alonso commented on 24 agosto, 2016 Reply

    Bueno, es mejorable… Con eso sólo consigues reemplazar caracteres en minúscula. Sería interesante hacerlo también para las mayusculas, euro, eñes, interrogación de apertura, letras con diéresis, etc.

    He perparado un script en PHP que conecta con la base de datos y se encarga de convertirlo todo, pero tengo un pequeño problema… ¿cómo diferenciar Á e í cuando ambos son exactamente el mismo caracter -> Ã ?

    Un saludo,

    • Carlos Dk commented on 26 agosto, 2016 Reply

      Bueno, lo más sencillo sería cambiar la codificación a la hora de hacer cualquier importación o cambio. Si no fuera posible, la única posibilidad que se me ocurre, es que se hagan algunas condicionales, por ejemplo saber si la letra está entre otras letras, será minúscula, si está detrás de un punto será Mayúscula, la única pega que encuentro es que sea un nombre propio, pero será una pequeña excepción.

      Un saludo!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *