MySQL: Buscar y Reemplazar texto con SQL

Hace unos dias atras este blog se mudo de hosting. El cambio se debio a que el server anterior esta saturado por la poblacion de World of Warcraft, asi que es mejor dejarlo exclusivo para chapincraft.

Durante la migracion de los sistemas la instalacion y configuracion del sistema Linux, el web server Lighttpd, MySQL y WordPress fue relativamente sencillo, lo que si fue problematico ha sido la migracion de la base de datos del WP.

Para realizar el backup de la base de datos del blog en wordpress ejecute el comando mysqldump y luego lo subi al nuevo servidor con la misma version de MySQL. El problema es que a pesar que el MySQL tiene la misma codificacion de caracteres, no me esta mostrando las tildes ni las letras ñ (enie). Luego de consultar con los amigos de phpgt alguien me recomendo hacer una busqueda y reemplazo.

Al principio no me parecio muy bien hacer las busquedas sobre el archivo de texto sql. Me parece mas logico hacer una pequeña consulta SQL sobre el servidor de bases de datos, ya que deberia de realizar la consulta mas rapido para solucionar las tildes y caracteres cambiados.

Encontre que existe la instruccion REPLACE en MySQL, asi que manos a la obra.

Reemplazando texto en MySQL

El comando REPLACE tiene una sintaxis sencilla, descrita de la siguiente forma:

UPDATE tabla SET campo = REPLACE(campo,'texto a buscar','nuevo texto');

Asi que utilizando la consulta anterior, podemos personalizarla para nuestro caso y buscar el texto corrupto sobre las tablas que contienen los titulos y articulos en wordpress, post_title y post_content respectivamente:

Reemplazar texto en titulos y contenido de WordPress

Dentro de phpmyadmin podemos ejecutar la siguiente consulta:

update wp_posts set post_title = replace(post_title, 'ñ', 'ñ');
update wp_posts set post_title = replace(post_title, 'á', 'á');
update wp_posts set post_title = replace(post_title, 'ó', 'ó');
update wp_posts set post_title = replace(post_title, 'Ã', 'í');
update wp_posts set post_title = replace(post_title, 'íº', 'ú');
update wp_posts set post_title = replace(post_title, 'í‘', 'Ñ');
update wp_posts set post_title = replace(post_title, 'ú', 'ú');
update wp_posts set post_title = replace(post_title, 'í©', 'é');
update wp_posts set post_title = replace(post_title, '–', '–');
update wp_posts set post_content = replace(post_content, 'ñ', 'ñ');
update wp_posts set post_content = replace(post_content, 'á', 'á');
update wp_posts set post_content = replace(post_content, 'ó', 'ó');
update wp_posts set post_content = replace(post_content, 'Ã', 'í');
update wp_posts set post_content = replace(post_content, 'íº', 'ú');
update wp_posts set post_content = replace(post_content, 'í©', 'é');
update wp_posts set post_content = replace(post_content, 'ú', 'ú');
update wp_posts set post_content = replace(post_content, 'í‘', 'Ñ');

Reemplazar texto en tabla comentarios de wordpress

update wp_comments set comment_content = replace(comment_content, '–', '–');
update wp_comments set comment_content = replace(comment_content, 'ñ', 'ñ');
update wp_comments set comment_content = replace(comment_content, 'á', 'á');
update wp_comments set comment_content = replace(comment_content, 'ó', 'ó');
update wp_comments set comment_content = replace(comment_content, 'Ã', 'í');
update wp_comments set comment_content = replace(comment_content, 'íº', 'ú');
update wp_comments set comment_content = replace(comment_content, 'í©', 'é');
update wp_comments set comment_content = replace(comment_content, 'ú', 'ú');
update wp_comments set comment_content = replace(comment_content, 'í‘', 'Ñ');

update wp_comments set comment_author = replace(comment_author, '–', '–');
update wp_comments set comment_author = replace(comment_author, 'ñ', 'ñ');
update wp_comments set comment_author = replace(comment_author, 'á', 'á');
update wp_comments set comment_author = replace(comment_author, 'ó', 'ó');
update wp_comments set comment_author = replace(comment_author, 'Ã', 'í');
update wp_comments set comment_author = replace(comment_author, 'íº', 'ú');
update wp_comments set comment_author = replace(comment_author, 'í©', 'é');
update wp_comments set comment_author = replace(comment_author, 'ú', 'ú');
update wp_comments set comment_author = replace(comment_author, 'í‘', 'Ñ');

Reemplazo para Yet another related post plugin

update wp_yarpp_keyword_cache set body = replace(body, 'ñ', 'ñ');
update wp_yarpp_keyword_cache set body = replace(body, 'á', 'á');
update wp_yarpp_keyword_cache set body = replace(body, 'ó', 'ó');
update wp_yarpp_keyword_cache set body = replace(body, 'Ã', 'í');
update wp_yarpp_keyword_cache set body = replace(body, 'íº', 'ú');
update wp_yarpp_keyword_cache set body = replace(body, 'í‘', 'Ñ');
update wp_yarpp_keyword_cache set body = replace(body, 'ú', 'ú');
update wp_yarpp_keyword_cache set body = replace(body, 'í©', 'é');
update wp_yarpp_keyword_cache set body = replace(body, '–', '–');

update wp_yarpp_keyword_cache set title = replace(title, '–', '–');
update wp_yarpp_keyword_cache set title = replace(title, 'ñ', 'ñ');
update wp_yarpp_keyword_cache set title = replace(title, 'á', 'á');
update wp_yarpp_keyword_cache set title = replace(title, 'ó', 'ó');
update wp_yarpp_keyword_cache set title = replace(title, 'Ã', 'í');
update wp_yarpp_keyword_cache set title = replace(title, 'íº', 'ú');
update wp_yarpp_keyword_cache set title = replace(title, 'í©', 'é');
update wp_yarpp_keyword_cache set title = replace(title, 'ú', 'ú');
update wp_yarpp_keyword_cache set title = replace(title, 'í‘', 'Ñ');

Por el momento asi me ha funcionado, aun tengo pendiente revisar las tablas de comentarios y agregar aca el codigo SQL. Aca podran encontrar un listado de carácteres ISO 8859-1 Latin-1.

Popularity: 9% [?]


Otros articulos de interes:

  1. MySQL vs PostgreSQL
  2. Optimizar MySQL para WordPress
  3. MySQL: Recuperar la contraseña de root en 5 pasos
  4. MySQL: Como cambiar la contraseña de root del servidor de base de datos
  5. Linux – Buscar y borrar archivos del sistema de archivos
  6. MySQL: Optimizar el rendimiento de lectura
  7. Guía rápida de administración de MySQL
  8. Convertir de latin1 a UTF-8 en MySQL
  9. Instalacion de MySQL 5 en Ubuntu
  10. MySQL Workbench 5.0 – El succesor de DBDesigner 4

Etiquetado como: , , , , , , , , , , , , , , , , , , ,

13 Comentarios

  1. OYE!!!!!!!!!!!!!

    NO SOY CODDER NI NADA DE ESO, SOLO UN OLDSCHOOL WEBMASTER, Y LUEGO DE INVESTIGAR MUCHISISISIMO ACERCA DE TODOS ESTOS CAMBIOS Y TRASPASOS DE DATABASES Y SUS COALICIONES Y CHARSETS….

    Simplemente se me ocurria al no ver ninguna solucion efectiva al seguir miles de fixes, que lo mejor era dejar quietos los charsets convertidos en todas partes para no ir a fallar y claro, pues convertir los malos caracteres SIN HACERLO MANUALMENTE como decian en muchas partes que era la unica opcion, y creelo luego de muchisisiismas lecturas, codex, foros, google, mysql PAGINAS, di con esta maravillosa consultaaaaa!!!

    TE AMOOOOOOOOOOOOOO JAJAJAJAJA!

    Me gustaria conocer el resto de la solucion para los comments hermano,

    Saludos desde Colombia

  2. ah y te falto la é !

    QUE ME IMAGINO ES:
    update wp_posts set post_title = replace(post_title, ‘í©’, ‘é’);
    update wp_posts set post_content = replace(post_content, ‘í©’, ‘é’);

    ya mismo la consulto :D :D :D :D

  3. Hola,
    Gracias por el tuto, me sirvió para otra cosa, pero igual gracias, sin embargo el problema que tuviste tenía una solución más simple… prueba cambiando la codificación del archivo sql del backup… la mayoría de los editores PRO te permiten seleccionar la codificación del archivo al guardarlo… por lo general sirve a la primera si lo guardas como iso-8859-1, sino UTF-8… esta es la codificación de archivo en sí, es independiente a la codificación con la que genera el archivo el servidor… muchas veces el sistema operativo cambia esa codificación, sobre todo si tocaste el archivo con notepad de Windows, que no respeta la codificación original del archivo.
    Saludos.

  4. Muchas gracias, he buscado este tema desde el inicio de los tiempos, abusando de tu gentileza, me podrias decir, por favor, las equivalencias de las mayusculas:

    Á É Í Ó Ú

    Gracias

  5. Ola!!

    Mil gracias, después de la mudanza de WP estaba volviéndose un infierno lidiar con enlaces rotos… ésto lo arregló!!

    Un abrazo

  6. Gracias por la data.

    Con ese mismo comando se puede reemplazar todo tipo de información dentro de los campos utilizando las consultas de SQL.

    Ejemplo: cambio de ubicación de archivos en un directorio:

    update wp_postmeta set meta_value = replace(meta_value, ‘/wp-content/’, ‘/wordpress/wp-content/’)

    esto reemplaza parte de la vieja ubicación /wp-content/ a donde estaban los archivos por una nueva /wordpress/wp-content/

    Saludos…

  7. Magnifico tu post, ya pude cambiar todos esos simbolos raros de mis titulos y de mis post pero aun no he podido con las categorias, cual es la sentencia para modificar tambien las categorias?

  8. No te preocupes por contestarme, no habia leido tu post completo, con la sentencia que compartiste: “UPDATE tabla SET campo = REPLACE(campo,’texto a buscar’,'nuevo texto’);” logre hacer todos mis cambios en toda la base de datos.

    Nuevamente Gracias!

    Un post genial el tuyo.

  9. Muchisimas gracias. Muy util :D

  10. excelente me sirvio de mucho en verdad… ya estaba doliendome la cabeza solo de pensar en cambiar dato por dato de una url perdida en los comentarios,,, tenia k modificar como 300.. me salvaste, saludos…

  11. Amigo.

    Gracias…

    muy buena ayuda.

Trackbacks

  1. Corregir caracteres raros por acentos en wordpress | Desde Mexicali Baja California Mexico, Soycachanilla.com

Por favor, escriba un comentario

Por favor tome en cuenta lo siguiente:
Los comentarios son moderados, por lo cual puede tardar en ser publicados. No hay necesidad de repetir su comentario.
Su correo electronico nunca sera revelado.

Terminos de busqueda


  • sentencia sql sustuir
  • buscar y reemplazar mysql
  • replace mysql
  • sql reemplazar texto
  • reemplazar mysql
  • replace mysql ejemplo
  • buscar y reemplazar en mysql
  • reemplazar sql
  • mysql update replace
  • update replace mysql
  • buscar en sql
  • reemplazar caracteres en mysql
  • reemplazar en mysql
  • update replace sql
  • reemplazar en sql
  • reemplazar texto en mysql
  • buscar sql
  • sql update replace
  • ó mysql
  • ñ mysql
  • sql reemplazar caracter
  • mysql replace
  • replace sql
  • reemplazar datos mysql
  • comando replace mysql
  • update expresiones regulares mysql
  • sql buscar
  • reemplazar caracter sql
  • mysql buscar y reemplazar
  • sql reemplazar
  • reemplazar texto en sql
  • sql buscar y reemplazar
  • modificar url entradas wordpress sql
  • sql buscar caracter
  • sql remplazar palabras
  • modificar url articulos wordpress sql
  • BUSCAR Y REEMPLAZAR CADENAS CARACTERES
  • reemplazar caracteres mysql
  • buscar reemplazar sql
  • reemplazar una parte del texto con sql
  • reemplazar un dato en sql
  • REEMPLAZAR UNA LETRA DE UNA CADENA EN SQL SERVER
  • remplazar con sql
  • reemplazo info tablas sql 2008
  • reemplazar \\ en mysql
  • reemplazar un caracter mysql
  • reemplazar datos en sql
  • remplazar informacion de un campo en sql
  • reemplazar un caracter en una tabla con sql
  • reemplazar las conexiones del texto
  • reemplazar parte de texto sql
  • reemplazar parte de un campo sql server
  • reemplazar parte de un texto en registros sql
  • REEMPLAZAR PARTES DE UN CAMPO SQL
  • reemplazar posts links phpMyAdmin
  • reemplazar texto consulta sql
  • reemplazar letras en mysql
  • Reemplazar texto en base de datos
  • reemplazar texto sql
  • reemplazar texto sql server 2005