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!

Carlos Dk

Apasionado por la enseñanza y el SEO

14 comentarios en “Reemplazar texto con caracteres extraños en MySQL

  • el 12 junio, 2013 a las 12:06 pm
    Permalink

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

    Respuesta
    • el 12 junio, 2013 a las 12:34 pm
      Permalink

      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!

      Respuesta
  • el 13 agosto, 2013 a las 9:02 pm
    Permalink

    Extraordinario me fue de gran ayuda

    Respuesta
    • el 14 agosto, 2013 a las 8:25 am
      Permalink

      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!

      Respuesta
  • el 12 septiembre, 2014 a las 5:54 am
    Permalink

    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!!

    Respuesta
    • el 12 septiembre, 2014 a las 8:09 am
      Permalink

      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!

      Respuesta
  • el 24 agosto, 2016 a las 8:53 am
    Permalink

    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,

    Respuesta
    • el 26 agosto, 2016 a las 7:47 am
      Permalink

      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!

      Respuesta
  • el 5 marzo, 2019 a las 4:06 pm
    Permalink

    Sencillamente excelente, simple pero eficaz hermano, gracias por compartir, me has ahorrado una gran cantidad de tiempo.

    Respuesta
    • el 5 marzo, 2019 a las 4:12 pm
      Permalink

      Nada! Problemas que ya resolví y que a otros les puede ayudar en el camino! Hoy mismo he estado codificando en base64 en MySQL para resolver una problemática de importación por espacios, puntos y coma ; y saltos de línea que rompían el CSV!

      Si tengo un rato lo documento!

      Salud!

      Respuesta

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.