MySQL REPLACE : remplacer facilement des sous-chaînes

La commande MySQL REPLACE permet de corriger des erreurs ou de remplacer des informations obsolètes dans une chaîne de caractères, si les majuscules et les minuscules sont bien respectées.

MySQL REPLACE : qu’est-ce que c’est ?

Pour synthétiser la commande MySQL REPLACE, une phrase suffit : MySQL REPLACE remplace toutes les occurrences d’une sous-chaîne par une autre sous-chaîne. Toutefois, pour approfondir cette affirmation, nous allons nous intéresser à la structure du logiciel MySQL. Le système de gestion de base de données utilise des tables pour stocker vos données et les mettre à votre disposition en cas de besoin. Il stocke ces données sous forme de chaînes de caractères, entre guillemets simples ou doubles. Une erreur d’écriture peut donc s’y glisser, de même qu’une information stockée peut devenir obsolète. La commande MySQL REPLACE peut alors vous aider.

Ne cherchez plus manuellement chaque occurrence de la sous-chaîne inutile, au risque d’en manquer une : la commande MySQL REPLACE s’en charge. Celle-ci recherche tous les emplacements où apparaît la sous-chaîne renseignée et la remplace à chaque fois par une nouvelle information, que vous pouvez définir afin de remplacer une adresse URL obsolète, de corriger des erreurs dans les chiffres ou les lettres, ou encore de mettre à jour d’autres valeurs de votre table ayant été modifiées pour obtenir une collection de données optimisée et actualisée. La commande MySQL REPLACE est simple d’utilisation et ne présente presque aucun piège potentiel.

MySQL REPLACE : syntaxe

Si vous êtes en train de vous familiariser avec MySQL, vous connaissez probablement déjà quelques commandes, comme MySQL CONCAT, MySQL DELETE, MySQL DATE ou MySQL DATEDIFF. MySQL REPLACE est un peu plus exigeante que ces commandes, car elle est obligatoirement composée de trois paramètres différents, eux-mêmes séparés par des virgules. Toutefois, cette structure devient rapidement évidente au vu de la syntaxe. Voici comment celle-ci se présente :

REPLACE (chaîne, ancienne_souschaîne, nouvelle_souschaîne);
bash

Le paramètre « chaîne » désigne la chaîne de caractères source, celle dans laquelle la modification doit avoir lieu. Le paramètre « ancienne_souschaîne » désigne la sous-chaîne que le système doit chercher et remplacer. Pour le dernier paramètre, la commande MySQL REPLACE a besoin de connaître la nouvelle sous-chaîne à insérer. Cette dernière remplace alors l’ancienne sous-chaîne chaque fois que celle-ci apparaît dans la chaîne spécifiée.

MySQL REPLACE : fonctionnement

Partons sur un exemple simple pour vous expliquer le fonctionnement de la commande MySQL REPLACE. Ici, nous allons changer le sens d’une série de mots en utilisant cette commande. Voici ce à quoi doit ressembler la commande :

SELECT REPLACE ("MUSE MULE MALT", "U", "I");
bash

Dans la chaîne « MUSE MULE MALT », nous demandons donc au système de remplacer la lettre « U » par la lettre « I ». La commande effectue cette modification à chaque occurrence de la lettre « U » dans la version actuelle. Voici le résultat obtenu pour cet exemple :

REPLACE ("MUSE MULE MALT", "U", "I")
MISE MILE MALT
bash

MySQL REPLACE : respect de la casse

Attention : n’oubliez pas que la commande MySQL REPLACE est sensible à la casse. Si ce n’est pas vraiment important dans l’exemple ci-dessus, le cas suivant nous montre que cela peut faire toute la différence.

SELECT REPLACE ("Vienne", "V", "t");
bash

Pour cet exemple, le résultat se présente alors comme suit :

REPLACE ("Vienne", "V", "t")
tienne
bash

Vous n’obtiendrez donc pas les résultats escomptés avec la commande MySQL REPLACE si vous ne tenez pas compte des majuscules et des minuscules lors de la rédaction de la commande. Pour ce qui est de l’exemple ci-dessus, si vous insériez un « v » minuscule en tant qu’ancienne sous-chaîne, aucune modification ne serait effectuée, la lettre n’étant pas présente dans la chaîne avec cette orthographe.

MySQL REPLACE : chiffres

En plus des lettres, la commande MySQL REPLACE peut également être utilisée avec des chiffres, sur la base d’un fonctionnement identique. La série de chiffres suivante comporte une erreur pouvant facilement être corrigée à l’aide de la commande MySQL REPLACE :

SELECT REPLACE ("16345", "6", "2");
bash

Le résultat est tout de suite plus satisfaisant :

REPLACE ("16345", "6", "2")
12345
bash

Un exemple pratique

Si, avec les exemples ci-dessus, nous vous avons montré comment vous pouviez utiliser la commande MySQL REPLACE, ceux-ci n’ont pas vraiment d’utilité pratique. Dans l’exemple suivant, vous allez toutefois comprendre comment elle peut « nettoyer » vos données. Imaginons que vous découvriez une coquille dans la colonne « Ville » d’une de vos listes de clients. La ville de Berlin apparaît au moins une fois avec l’orthographe « Belrin ». Au lieu de tout supprimer, vous pouvez remplacer les occurrences erronées en rétablissant la bonne orthographe. Voici comment cela fonctionne :

UPDATE Listeclient
SET
Ville = REPLACE (Ville, "Belrin", "Berlin");
bash

Et voilà : votre colonne « Ville » est à nouveau correcte.