Comment remplacer une partie de texte en SQL ?
Besoin de trouver les occurences d'un texte dans une colonne et de les remplacer dans toute la table ? Voici la solution !

Vous avez une base de données SQL existante et vous souhaitez rechercher et remplacer toutes les occurrences d'un texte dans la colonne d'une table ?
Il vous suffit d'utiliser la méthode REPLACE disponible sur tous les systÚmes de gestion de base de données SQL en indiquant la colonne souhaitée, l'ancienne valeur puis la nouvelle.
Voici un exemple de requĂȘte facile Ă mettre en place :
UPDATE `table`
SET `column` = REPLACE(`column`, 'old_value', 'new_value')
WHERE `column` LIKE '%old_value%';
Les % dans la clause LIKE sont l'équivalent du ".*" dans une expression réguliÚre !
à noter qu'ici la condition WHERE est presque redondante, car REPLACE ne modifiera pas le champ si la chaine recherchée n'est pas déjà présente.
NĂ©anmoins cela permet de ne sĂ©lectionner qu'un sous-ensemble des lignes de la table, et donc dâaccĂ©lĂ©rer le traitement. La diffĂ©rence est insignifiante sur une petite table, mais lorsque l'on commence Ă traiter des dizaines de milliers de lignes, cela devient indispensable !
Exception : Les champs sérialisés
Si vous stockez des champs sĂ©rialisĂ©s comme des tableaux en PHP, attention Ă ne pas les inclure dans votre requĂȘte de remplacement, car sinon vous risque de corrompre vos donnĂ©es.
En effet, la chaĂźne transformĂ©e n'aurait plus la mĂȘme taille avant et aprĂšs, la dĂ©-sĂ©rialisation serait alors impossible.
J'espÚre que cet article vous aura été utile, et à bientÎt sur le blog !
Les articles les plus populaires du blog
Envie de continuer à lire des articles autour du développement web (entre autres) ? Voici la sélection des articles de mon blog les plus lus par la communauté !
Voir la sĂ©lection đRecevez les articles de la semaine par e-mail pour ne rien manquer !
S'abonner Ă la newsletter đ§
Ă propos de l'auteur
Hello, je suis Nicolas Brondin-Bernard, ingénieur web indépendant depuis 2015 passionné par le partage d'expériences et de connaissances.
Aujourd'hui je suis aussi formateur/coach pour dĂ©veloppeurs web juniors, tu peux me contacter sur nicolas@brondin.com, sur mon site ou devenir membre de ma newsletter pour ne jamais louper le meilleur article de la semaine et ĂȘtre tenu au courant de mes projets !
Photo par Chase Clark sur Unsplash