Commande pour remplacer une chaîne de caractères dans une base de données MySQL ou MariaDB

Quiconque doit gérer une base de données MySQL ou MariaDB a, à un moment ou à un autre, rencontré le besoin de remplacer ou de supprimer récursivement une chaîne de caractères dans les lignes de la base de données. Normalement, ce genre de choses se fait à l’aide de scripts spécialement conçus pour résoudre le problème, mais il existe aussi un moyen beaucoup plus rapide de le faire.

Il est important qu’avant de poursuivre la lecture et l’application de cet article, vous sachiez ce qu’est une base de données, que vous puissiez mettre la main dessus et que vous fassiez une sauvegarde de sécurité. Il est facile de commettre des erreurs qui peuvent faire des ravages en utilisant ce système, car vous pouvez être en mesure d’oublier quelque chose ou d’utiliser les caractères génériques de manière inappropriée.

Cet article est fait pour rappeler à ceux qui savent déjà comment mettre les mains dans une base de données en utilisant les outils et les clients appropriés..

La commande en question est REPLACE et dans ce cas, elle peut être utilisée conjointement avec la commande UPDATE. La syntaxe générique de la commande est la suivante :


USE database_name;
UPDATE table_name set column_name=REPLACE(column_name,'text to search','new text');

La commande peut également être suivie de la clause WHERE, qui permet de limiter le nombre d’enregistrements à rechercher au nombre dont on a réellement besoin.

Afin de rendre le concept plus clair, je vais vous donner un exemple ci-dessous. Supposons que nous ayons accidentellement inséré un texte commençant par un espace dans certaines lignes de notre base de données. Si je voulais supprimer l’espace au début de chaque ligne dans laquelle il a été inséré par erreur, j’écrirais :

UPDATE table_name set column_name=REPLACE(column_name,'  ','') WHERE column_name LIKE ' %';

Dans ce cas, le caractère à rechercher est l’espace et doit être remplacé par rien, c’est-à-dire les deux exposants côte à côte sans espace. La clause WHERE de l’exemple indique que la substitution doit être effectuée uniquement dans les lignes commençant par un espace. Veuillez noter que le caractère pourcentage, qui est utilisé comme joker, ne suit pas le premier guillemet dans ce cas, car nous ne recherchons pas tous les espaces dans les chaînes de caractères, mais uniquement l’espace au début de la chaîne.

Si vous trouvez quelque chose de peu clair, n’hésitez pas à le signaler dans les commentaires et je serai heureux de répondre à vos questions. Soyez sages et essayez de ne pas faire de dégâts !


Il est possible de laisser un commentaire en tant qu'utilisateur enregistré du site, accédant par les réseaux sociaux, compte wordpress ou en tant qu'utilisateur anonyme. Si vous souhaitez laisser un commentaire en tant qu'utilisateur anonyme, vous serez informé par courrier électronique d'une réponse possible uniquement si vous saisissez votre adresse électronique (facultatif). L'inclusion de toute donnée dans les champs de commentaires est totalement facultative. Toute personne qui décide de saisir des données accepte le traitement de celles-ci pour les finalités inhérentes au service ou la réponse au commentaire et aux communications strictement nécessaires.


Laisser un commentaire