Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL REPLACE() – Ersetzen Sie alle Instanzen einer Teilzeichenfolge durch eine andere Zeichenfolge

Das MySQL REPLACE() Mit der Funktion können Sie alle Vorkommen einer Teilzeichenfolge durch eine andere Zeichenfolge ersetzen. Es erlaubt Ihnen, Dinge zu tun, wie z. B. alle Vorkommen eines Wortes durch ein anderes Wort zu ersetzen usw.

Dieser Artikel demonstriert seine Verwendung.

Syntax

So sieht die Syntax aus:

REPLACE(str,from_str,to_str)

Wobei str ist die Zeichenfolge, die die Teilzeichenfolge/n enthält. from_str ist die Teilzeichenfolge, die Sie durch eine andere Zeichenfolge ersetzen möchten. Und to_str ist die neue Zeichenfolge, die die alte Zeichenfolge ersetzt.

Beispiel

Hier ist ein einfaches Beispiel:

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

Ergebnis:

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

In diesem Fall vertauschen wir einfach das Wort and mit dem Wort or . Da dieses Wort dreimal vorkam, wurden alle drei ersetzt.

Groß-/Kleinschreibung beachten

Es ist wichtig, sich daran zu erinnern, dass REPLACE() Bei der Funktion wird zwischen Groß- und Kleinschreibung unterschieden.

Beispiel:

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

Ergebnis:

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

In diesem Fall nur eine Instanz von cat wurde ersetzt, weil nur eine Instanz den richtigen Fall hatte. Die erste Instanz hatte ein großes C es stimmte also nicht überein.

Einen Teilstring entfernen

Sie können einen Teilstring auch ganz entfernen, indem Sie einfach den Teilstring durch den leeren String ersetzen ('' ):

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

Ergebnis:

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

Ein Schutz

Eine andere (vielleicht sicherere) Möglichkeit, dies zu tun, besteht darin, einen Teil des umgebenden Textes einzufügen und dann den unnötigen Teil zu entfernen:

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

Ergebnis:

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

Dadurch wird verhindert, dass versehentlich eine Teilzeichenfolge entfernt wird, die nicht entfernt werden sollte. Zum Beispiel, wenn wir eine URL wie  http://bestwww.com haben , die versehentlich zu http://bestcom werden würde ohne Schutz.

Dieselbe Schutzmaßnahme kann in Fällen angewendet werden, in denen Sie Text ersetzen (nicht nur entfernen). Zum Beispiel dies:

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

Ergebnis:

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

In diesem Fall habe ich vor und nach dem Teilstring und seinem Ersetzungstext ein Leerzeichen eingefügt.

Wenn ich das nicht getan hätte, wäre ich auf Folgendes gekommen:

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

Ergebnis:

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