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 !

Comment remplacer une partie de texte en SQL ?

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 📧
Mes formations disponibles 🎓  -5% inclus pour les lecteurs du blog

À 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