In MariaDB REPLACE()
ist eine integrierte Zeichenfolgenfunktion, mit der Sie einen Teil einer Zeichenfolge durch eine andere Zeichenfolge ersetzen können.
Die Funktion akzeptiert drei Argumente:die Zeichenfolge, die zu ersetzende Teilzeichenfolge und die Zeichenfolge, durch die die Teilzeichenfolge ersetzt werden soll.
Syntax
Die Syntax lautet wie folgt:
REPLACE(str,from_str,to_str)
Wobei str
der String ist und from_str
der zu ersetzende Teilstring ist, und to_str
ist die Zeichenfolge, durch die diese Teilzeichenfolge ersetzt werden soll.
Beispiel
Hier ist ein einfaches Beispiel:
SELECT REPLACE('Black dog', 'dog', 'cat');
Ergebnis:
+------------------------------------+| REPLACE('Schwarzer Hund', 'Hund', 'Katze') |+---------------------------------------------- ---+| Schwarze Katze |+-----------------------------------+
In diesem Fall haben wir den Teilstring dog
ersetzt mit cat
.
Mehrere Übereinstimmungen
Kommt der zu ersetzende String mehrfach innerhalb des Strings vor, werden alle Vorkommen ersetzt:
SELECT REPLACE('Black dogs and white dogs', 'dog', 'cat');
Ergebnis:
Keine Übereinstimmung
Wenn der Teilstring nicht im String vorkommt, REPLACE()
gibt den String unverändert zurück:
SELECT REPLACE('Black dog', 'horse', 'cat');
Ergebnis:
Groß-/Kleinschreibung
Das REPLACE()
Funktion führt einen Vergleich zwischen Groß- und Kleinschreibung durch:
SELECT REPLACE('Black dog', 'dog', 'cat');
Ergebnis:
+------------------------------------+| REPLACE('Schwarzer Hund', 'Hund', 'Katze') |+--------------------------------------------- ---+| Schwarzer Hund |+-----------------------------------+
In diesem Beispiel stimmte die Groß-/Kleinschreibung nicht überein, daher wurde nichts ersetzt.
Leere Zeichenfolgen
Folgendes passiert, wenn für jedes angegebene Argument eine leere Zeichenfolge übergeben wird:
SELECT
REPLACE('', 'dog', 'cat') AS "1",
REPLACE('Black dog', '', 'cat') AS "2",
REPLACE('Black dog', 'dog', '') AS "3";
Ergebnis:
+------+-----------+--------+| 1 | 2 | 3 |+------+-----------+--------+| | Schwarzer Hund | Schwarz |+------+-----------+--------+
Also in diesem Fall:
- Das Übergeben einer leeren Zeichenkette als Anfangszeichenkette gibt eine leere Zeichenkette zurück.
- Das Übergeben einer leeren Zeichenfolge für das zweite Argument gibt die ursprüngliche Zeichenfolge zurück.
- Das Übergeben eines leeren Strings für das dritte Argument entfernt den zu ersetzenden String aus dem String.
Leerzeichen
Eine leere Zeichenfolge ist nicht dasselbe wie das Leerzeichen.
Folgendes passiert, wenn wir die leere Zeichenfolge in ein Leerzeichen ändern:
SELECT
REPLACE(' ', 'dog', 'cat') AS "1",
REPLACE('Black dog', ' ', 'cat') AS "2",
REPLACE('Black dog', 'dog', ' ') AS "3";
Ergebnis:
+------+------------+---------+| 1 | 2 | 3 |+------+------------+---------+| | Schwarzkatzenhund | Schwarz |+------+------------+---------+
Wenn also der String nur ein Leerzeichen ist, dann können wir das durch einen anderen String ersetzen:
SELECT REPLACE(' ', ' ', 'cat');
Ergebnis:
+---------------------+| REPLACE(' ', ' ', 'Katze') |+---------------------+| Katze |+---------------------+
Null-Argumente
Bereitstellung von null
ergibt null
:
SELECT
REPLACE(null, 'dog', 'cat') AS "1",
REPLACE('Black dog', null, 'cat') AS "2",
REPLACE('Black dog', 'dog', null) AS "3";
Ergebnis:
+------+------+------+| 1 | 2 | 3 |+------+------+------+| NULL | NULL | NULL |+------+------+------+
Fehlendes Argument
Aufruf von REPLACE()
mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT REPLACE();
Ergebnis:
ERROR 1064 (42000):Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, auf die richtige Syntax, um sie in der Nähe von ')' in Zeile 1 zu verwenden