MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie REPLACE() in MariaDB funktioniert

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:

+---------------------------------------------- ------+| REPLACE('Schwarze Hunde und weiße Hunde', 'Hund', 'Katze') |+------------------------------ ----------------------+| Schwarze Katzen und weiße Katzen |+-------------------------------------------------- ---------+

Keine Übereinstimmung

Wenn der Teilstring nicht im String vorkommt, REPLACE() gibt den String unverändert zurück:

SELECT REPLACE('Black dog', 'horse', 'cat'); 

Ergebnis:

+--------------------------------------+| REPLACE('Schwarzer Hund', 'Pferd', 'Katze') |+---------------------------------------------- -----+| Schwarzer Hund |+--------------------------------------------------+

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