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!

Comments (14)

  • angel 12 junio, 2013

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

    Reply
    • VideoTutoriales 12 junio, 2013

      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!

      Reply
  • Erik 13 agosto, 2013

    Extraordinario me fue de gran ayuda

    Reply
    • VideoTutoriales 14 agosto, 2013

      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!

      Reply
  • ricardo avalos 12 septiembre, 2014

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

    Reply
    • videotutoriales 12 septiembre, 2014

      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!

      Reply
  • eduardo gomez 21 julio, 2016

    muy bueno gracias amigo

    Reply
    • Carlos Dk 10 agosto, 2016

      Nada, me alegro de que te sirviera.

      Reply
  • Dani Alonso 24 agosto, 2016

    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,

    Reply
    • Carlos Dk 26 agosto, 2016

      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!

      Reply
  • Pedro 5 marzo, 2019

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

    Reply
    • Carlos Dk 5 marzo, 2019

      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!

      Reply
  • Daniel 17 septiembre, 2023

    muchas gracias!

    Reply
    • Carlos Dk 19 septiembre, 2023

      Muchas de nada 🙂

      Reply

Leave a comment

Sign in to post your comment or sine up if you dont have any account.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Tu software de gestión


Últimas preguntas:

Logo Dkreativo
Vertutoriales