sql >> Databasteknik >  >> RDS >> MariaDB

Hur REPLACE() fungerar i MariaDB

I MariaDB, REPLACE() är en inbyggd strängfunktion som låter dig ersätta en del av en sträng med en annan sträng.

Funktionen accepterar tre argument:strängen, delsträngen som ska ersättas och strängen att ersätta delsträngen med.

Syntax

Syntaxen ser ut så här:

REPLACE(str,from_str,to_str)

Där str är strängen och from_str är delsträngen som ska ersättas och to_str är strängen att ersätta den delsträngen med.

Exempel

Här är ett grundläggande exempel:

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

Resultat:

+------------------------------------+
| REPLACE('Black dog', 'dog', 'cat') |
+------------------------------------+
| Black cat                          |
+------------------------------------+

I det här fallet ersatte vi delsträngen dog med cat .

Flera matchningar

Om strängen som ska ersättas förekommer flera gånger i strängen, ersätts alla förekomster:

SELECT REPLACE('Black dogs and white dogs', 'dog', 'cat');

Resultat:

+----------------------------------------------------+
| REPLACE('Black dogs and white dogs', 'dog', 'cat') |
+----------------------------------------------------+
| Black cats and white cats                          |
+----------------------------------------------------+

Ingen match

Om delsträngen inte förekommer i strängen, REPLACE() returnerar strängen oförändrad:

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

Resultat:

+--------------------------------------+
| REPLACE('Black dog', 'horse', 'cat') |
+--------------------------------------+
| Black dog                            |
+--------------------------------------+

Skaftkänslighet

REPLACE() funktion utför en skiftlägeskänslig matchning:

SELECT REPLACE('Black dog', 'Dog', 'Cat');

Resultat:

+------------------------------------+
| REPLACE('Black dog', 'Dog', 'Cat') |
+------------------------------------+
| Black dog                          |
+------------------------------------+

I det här exemplet stämde inte fallet, så ingenting ersattes.

Tömma strängar

Så här händer när en tom sträng skickas för varje givet argument:

SELECT 
    REPLACE('', 'dog', 'cat') AS "1",
    REPLACE('Black dog', '', 'cat') AS "2",
    REPLACE('Black dog', 'dog', '') AS "3";

Resultat:

+------+-----------+--------+
| 1    | 2         | 3      |
+------+-----------+--------+
|      | Black dog | Black  |
+------+-----------+--------+

Så i det här fallet:

  • Att skicka en tom sträng för den initiala strängen returnerar en tom sträng.
  • Att skicka en tom sträng för det andra argumentet returnerar den ursprungliga strängen.
  • Att skicka en tom sträng för det tredje argumentet tar bort strängen som ska ersättas från strängen.

Mellanslagstecken

En tom sträng är inte detsamma som mellanslagstecknet.

Så här händer när vi ändrar den tomma strängen till ett mellanslag:

SELECT 
    REPLACE(' ', 'dog', 'cat') AS "1",
    REPLACE('Black dog', ' ', 'cat') AS "2",
    REPLACE('Black dog', 'dog', ' ') AS "3";

Resultat:

+------+-------------+---------+
| 1    | 2           | 3       |
+------+-------------+---------+
|      | Blackcatdog | Black   |
+------+-------------+---------+

Därför, om strängen inte är något annat än ett mellanslag, kan vi ersätta det med en annan sträng:

SELECT REPLACE(' ', ' ', 'cat');

Resultat:

+--------------------------+
| REPLACE(' ', ' ', 'cat') |
+--------------------------+
| cat                      |
+--------------------------+

Nollargument

Tillhandahåller null resulterar i null :

SELECT 
    REPLACE(null, 'dog', 'cat') AS "1",
    REPLACE('Black dog', null, 'cat') AS "2",
    REPLACE('Black dog', 'dog', null) AS "3";

Resultat:

+------+------+------+
| 1    | 2    | 3    |
+------+------+------+
| NULL | NULL | NULL |
+------+------+------+

Argument saknas

Anropar REPLACE() med fel antal argument, eller utan att skicka några argument resulterar i ett fel:

SELECT REPLACE();

Resultat:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

  1. Hur man exporterar databasschema i Oracle till en dumpfil

  2. MariaDB JSON_UNQUOTE() Förklarad

  3. Hjälp oss att modernisera IDE i MS Access – din röst räknas!

  4. SÄTT IN VÄRDEN DÄR INTE FINNS