Reemplazar cadenas en MySQL
March 19th, 2005A menudo es necesario realizar sustituciones de cadenas en información almacenada en base de datos de forma masiva. Por ejemplo hoy he necesitado realizar un cambio en todos los enlaces que se referencian en la base de datos de este web, gestionada con WordPress, para que a aquellos que tuvieran target="_blank" se les añadiera un class="external". Esto antes lo hacía con un plugin de forma automática, pero lo hacía para todos los target blanks, y en estos momentos me interesa que sea únicamente para los que correspondan a webs externos, de forma que únicamente en estos casos salga el iconito de la flecha a su derecha.
Para hacer este cambio lo más sencillo es realizar una consulta SQL que sustitula la cadena target="_blank" por target="_blank" class="external" en todos los contenidos. Esto es tan sencillo como realizar la siguiente query:
UPDATE wp_posts SET post_content = REPLACE (post_content,'target="_blank"','target="_blank" class="external"' )
Por supuesto es posible realizar este cambio sobre determinados registros utilizando where en la consulta.
Referencias
delicious
menéame
fresqui

October 3rd, 2006 a las 9:04 pm
Mil Gracias por este post, me soluciono un problema al que le venía pensando desde un buen rato.
Saludos.
March 19th, 2008 a las 10:48 pm
Genial, yo también te lo agradezco!
Me has ahorrado un bueeeeeeeen tiempo de trabajo
Saludos
March 20th, 2008 a las 5:53 am
[…] Este excelente tutorial me ayudo mucho para reemplazar cadenas en la base de datos, cosa que me permitio eliminar cadenas de texto que contenieran la vieja url del blog en los post y por supuesto reemplazar urls caducadas en los attachs, esta sencilla función del MySQL me ahorro muuuuuuuuuuuuuuuuuuuuuuucho tiempo
[…]