…::: Guatewireless.org ::::..

Tecnologia, Software Libre, Guatemala, Open Source, Linux, Wireless, WiFi, Scripting, Debian, CentOS, Gentoo, Redhat, SuSE, Windows

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: 7%

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

11 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

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


  • sql reemplazar texto
  • buscar y reemplazar mysql
  • buscar y reemplazar en mysql
  • reemplazar mysql
  • mysql update replace
  • update replace mysql
  • buscar en sql
  • reemplazar un caracter en todos los registros tabla mysql
  • reemplazar en mysql
  • replace sql
  • update replace sql
  • reemplazar texto en mysql
  • buscar sql
  • reemplazar sql
  • reemplazar caracteres en mysql
  • comando replace mysql
  • buscar y reemplazar en sql
  • replace mysql ejemplo
  • reemplazar datos mysql
  • sql sustituir
  • replace sql server
  • sql update replace
  • reemplazar en sql
  • replace mysql
  • sql buscar
  • mysql reemplazar
  • buscar caracter sql
  • reemplazar caracter sql
  • sql reemplazar caracter
  • ó mysql
  • reemplazar caracteres en sql
  • mysql replace sql
  • reemplazar caracter mysql
  • reemplazar texto sql
  • reemplazar tildes mysql
  • reemplazar un caracter sql
  • buscar en una tabla y remplazar en otra más campos
  • reemplazar texto en sqlserver
  • sql sustituir texto
  • sql update sustituir texto
  • buscar y reemplazar en una tabla
  • reemplazar cadenas en mysql
  • ejemplo replace mysql
  • consultas mysql buscar
  • mysql ó
  • buscar texto en sql
  • SQL cambiar valor campo expresiones regulares UPDATE
  • reemplazar campos en mysql
  • Buscar Ñ MysQL
  • mysql buscar texto
  • cambiar parte de una cadena sql update
  • sql server utf-8 texto
  • mysql buscar y reemplazar
  • reemplazar tildes en mysql
  • consulta para reemplazar caracteres sql
  • mysql reemplazar texto
  • reemplazar un caracter en mysql
  • reemplazar un campo en sql
  • reeplazar en sql
  • como corregir acentos utf8 en mysql