un Regexp dans un Update

Depuis quelque temps déjà je cherchais le moyen de modifier 141 messages de ce blog directement via une requete MYSQL.

En effet je m’étais aperçu que tous ces messages comportaient une balise dont je ne me servais plus, héritage (je crois) du blog sous dotclear. Seul problème cette balise comporte des données entre son ouverture et sa fermeture du genre

<span style= »font-weight: bold; »>données</span>

alors que je souhaiterais corriger avec la balise STRONG histoire de faire simple

<STRONG>données</STRONG>


Seul « petit » problème, les requêtes UPDATES de MySQL n’acceptent pas les expressions régulières, c’est pas moi qui le dis, c’est ce que j’ai lu un peu partout sur la toile.
Du coup comment faire un « rechercher »/ »remplacer » dans ces conditions?
après moults recherches et essais (et conneries) directement sur la base j’ai enfin trouvé la solution.
j’ai réussi en deux étapes
la première

UPDATE `wp_posts`
SET `post_content` = TRIM(REPLACE(`post_content`, ‘<span class=\"dot_code\" dir=\"ltr\">’, ‘<span>’))
WHERE `post_content` REGEXP BINARY ‘(<span class=\"dot_code\" dir=\"ltr\">)’;

la Deuxième

UPDATE `wp_posts`
SET `post_content` = TRIM(REPLACE(`post_content`, ‘</span>’, ‘</strong>’))
WHERE `post_content` REGEXP BINARY ‘(<span style=\"font-weight: bold;\">)(.*)(</span>)’;

En espérant que cela puisse vous aider

Laisser un commentaire