Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL REPLACE() - Remplacer toutes les instances d'une sous-chaîne par une autre chaîne

Le MySQL REPLACE() La fonction vous permet de remplacer toutes les occurrences d'une sous-chaîne par une autre chaîne. Il vous permet de faire des choses comme remplacer toutes les occurrences d'un mot par un autre mot, etc.

Cet article illustre son utilisation.

Syntaxe

Voici comment fonctionne la syntaxe :

REPLACE(str,from_str,to_str)

str est la chaîne qui contient la ou les sous-chaînes. from_str est la sous-chaîne que vous souhaitez remplacer par une autre chaîne. Et to_str est la nouvelle chaîne qui remplacera l'ancienne chaîne.

Exemple

Voici un exemple de base :

SELECT REPLACE('Cats and dogs and cats and rabbits', 'and', 'or') AS Result;

Résultat :

+---------------------------------+
| Result                          |
+---------------------------------+
| Cats or dogs or cats or rabbits |
+---------------------------------+

Dans ce cas, nous échangeons simplement le mot and avec le mot or . Comme il y avait trois occurrences de ce mot, les trois ont été remplacées.

Sensible à la casse

Il est important de se rappeler que le REPLACE() la fonction est sensible à la casse.

Exemple :

SELECT REPLACE('Cats and dogs and cats and rabbits', 'cat', 'flea') AS Result;

Résultat :

+-------------------------------------+
| Result                              |
+-------------------------------------+
| Cats and dogs and fleas and rabbits |
+-------------------------------------+

Dans ce cas, une seule instance de cat a été remplacé, car une seule instance avait la bonne casse. La première instance avait un C majuscule donc ça ne correspondait pas.

Supprimer une sous-chaîne

Vous pouvez également supprimer complètement une sous-chaîne, simplement en remplaçant la sous-chaîne par la chaîne vide ('' ):

SELECT REPLACE('http://www.database.guide', 'www.', '') AS Result;

Résultat :

+-----------------------+
| Result                |
+-----------------------+
| http://database.guide |
+-----------------------+

Une sauvegarde

Une autre méthode (peut-être plus sûre) consiste à inclure une partie du texte environnant, puis à supprimer la partie inutile :

SELECT REPLACE('http://www.database.guide', 'http://www.', 'http://') AS Result;

Résultat :

+-----------------------+
| Result                |
+-----------------------+
| http://database.guide |
+-----------------------+

Cela évite de supprimer par inadvertance une sous-chaîne qui ne devrait pas être supprimée. Par exemple, si nous avons une URL telle que  http://bestwww.com , qui se transformerait par inadvertance en http://bestcom sans la sauvegarde.

La même protection peut être appliquée dans les cas où vous remplacez du texte (pas seulement le supprimez). Par exemple, ceci :

SELECT REPLACE('Land of cats and dogs and sand', ' and ', ' or ') AS Result;

Résultat :

+------------------------------+
| Result                       |
+------------------------------+
| Land of cats or dogs or sand |
+------------------------------+

Dans ce cas, j'ai ajouté un espace avant et après la sous-chaîne et son texte de remplacement.

Si je n'avais pas fait ça, je me serais retrouvé avec ça :

SELECT REPLACE('Land of cats and dogs and sand', 'and', 'or') AS Result;

Résultat :

+----------------------------+
| Result                     |
+----------------------------+
| Lor of cats or dogs or sor |
+----------------------------+