un Regexp dans un Update
Écrit par: papoo dans la catégorie: Wordpress
Depuis quelques 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 ça fermeture du genre
<span style= »font-weight: bold; »>données</span>
alors que je souhaiterais corrriger 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 moult 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
