La commande MySQL REPLACE permet de corriger des erreurs ou de remplacer des in­for­ma­tions obsolètes dans une chaîne de ca­rac­tères, si les ma­jus­cules et les mi­nus­cules sont bien res­pec­tées.

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

Pour syn­thé­ti­ser la commande MySQL REPLACE, une phrase suffit : MySQL REPLACE remplace toutes les oc­cur­rences d’une sous-chaîne par une autre sous-chaîne. Toutefois, pour ap­pro­fon­dir cette af­fir­ma­tion, nous allons nous in­té­res­ser à 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 dis­po­si­tion en cas de besoin. Il stocke ces données sous forme de chaînes de ca­rac­tères, entre guil­le­mets simples ou doubles. Une erreur d’écriture peut donc s’y glisser, de même qu’une in­for­ma­tion stockée peut devenir obsolète. La commande MySQL REPLACE peut alors vous aider.

Ne cherchez plus ma­nuel­le­ment chaque oc­cur­rence de la sous-chaîne inutile, au risque d’en manquer une : la commande MySQL REPLACE s’en charge. Celle-ci recherche tous les em­pla­ce­ments où apparaît la sous-chaîne ren­seig­née et la remplace à chaque fois par une nouvelle in­for­ma­tion, 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 col­lec­tion de données optimisée et ac­tua­li­sée. La commande MySQL REPLACE est simple d’uti­li­sa­tion et ne présente presque aucun piège potentiel.

MySQL REPLACE : syntaxe

Si vous êtes en train de vous fa­mi­lia­ri­ser avec MySQL, vous con­nais­sez pro­ba­ble­ment 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 obli­ga­toi­re­ment composée de trois pa­ra­mètres dif­fé­rents, eux-mêmes séparés par des virgules. Toutefois, cette structure devient ra­pi­de­ment é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 ca­rac­tères source, celle dans laquelle la mo­di­fi­ca­tion doit avoir lieu. Le paramètre « ancienne_sous­chaî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 : fonc­tion­ne­ment

Partons sur un exemple simple pour vous expliquer le fonc­tion­ne­ment 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 res­sem­bler 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 mo­di­fi­ca­tion à chaque oc­cur­rence 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 dif­fé­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’ob­tien­drez donc pas les résultats escomptés avec la commande MySQL REPLACE si vous ne tenez pas compte des ma­jus­cules et des mi­nus­cules 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 mo­di­fi­ca­tion ne serait effectuée, la lettre n’étant pas présente dans la chaîne avec cette or­tho­graphe.

MySQL REPLACE : chiffres

En plus des lettres, la commande MySQL REPLACE peut également être utilisée avec des chiffres, sur la base d’un fonc­tion­ne­ment identique. La série de chiffres suivante comporte une erreur pouvant fa­ci­le­ment être corrigée à l’aide de la commande MySQL REPLACE :

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

Le résultat est tout de suite plus sa­tis­fai­sant :

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 com­prendre comment elle peut « nettoyer » vos données. Imaginons que vous dé­cou­vriez 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’or­tho­graphe « Belrin ». Au lieu de tout supprimer, vous pouvez remplacer les oc­cur­rences erronées en ré­ta­blis­sant la bonne or­tho­graphe. Voici comment cela fonc­tionne :

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

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

Aller au menu principal