V MariaDB REPLACE() je vestavěná funkce řetězce, která vám umožňuje nahradit část řetězce jiným řetězcem.
Funkce přijímá tři argumenty:řetězec, podřetězec, který se má nahradit, a řetězec, kterým se má podřetězec nahradit.
Syntaxe
Syntaxe vypadá takto:
REPLACE(str,from_str,to_str)
Kde str je řetězec a from_str je podřetězec, který se má nahradit, a to_str je řetězec, kterým se má tento podřetězec nahradit.
Příklad
Zde je základní příklad:
SELECT REPLACE('Black dog', 'dog', 'cat'); Výsledek:
+------------------------------------+
| REPLACE('Black dog', 'dog', 'cat') |
+------------------------------------+
| Black cat |
+------------------------------------+
V tomto případě jsme nahradili podřetězec dog s cat .
Více shod
Pokud se řetězec, který má být nahrazen, vyskytuje v řetězci vícekrát, budou nahrazeny všechny výskyty:
SELECT REPLACE('Black dogs and white dogs', 'dog', 'cat'); Výsledek:
+----------------------------------------------------+
| REPLACE('Black dogs and white dogs', 'dog', 'cat') |
+----------------------------------------------------+
| Black cats and white cats |
+----------------------------------------------------+ Žádná shoda
Pokud se podřetězec v řetězci nevyskytuje, REPLACE() vrátí řetězec beze změny:
SELECT REPLACE('Black dog', 'horse', 'cat'); Výsledek:
+--------------------------------------+
| REPLACE('Black dog', 'horse', 'cat') |
+--------------------------------------+
| Black dog |
+--------------------------------------+ Rozlišovat malá a velká písmena
REPLACE() funkce provádí shodu rozlišující malá a velká písmena:
SELECT REPLACE('Black dog', 'Dog', 'Cat'); Výsledek:
+------------------------------------+
| REPLACE('Black dog', 'Dog', 'Cat') |
+------------------------------------+
| Black dog |
+------------------------------------+ V tomto příkladu se případ neshodoval, a tak nebylo nic nahrazeno.
Prázdné řetězce
Co se stane, když je pro každý daný argument předán prázdný řetězec:
SELECT
REPLACE('', 'dog', 'cat') AS "1",
REPLACE('Black dog', '', 'cat') AS "2",
REPLACE('Black dog', 'dog', '') AS "3"; Výsledek:
+------+-----------+--------+ | 1 | 2 | 3 | +------+-----------+--------+ | | Black dog | Black | +------+-----------+--------+
Takže v tomto případě:
- Předáním prázdného řetězce pro počáteční řetězec se vrátí prázdný řetězec.
- Předáním prázdného řetězce pro druhý argument se vrátí původní řetězec.
- Předáním prázdného řetězce pro třetí argument odstraníte z řetězce řetězec, který má být nahrazen.
Mezerní znak
Prázdný řetězec není totéž jako znak mezery.
Zde je to, co se stane, když změníme prázdný řetězec na mezeru:
SELECT
REPLACE(' ', 'dog', 'cat') AS "1",
REPLACE('Black dog', ' ', 'cat') AS "2",
REPLACE('Black dog', 'dog', ' ') AS "3"; Výsledek:
+------+-------------+---------+ | 1 | 2 | 3 | +------+-------------+---------+ | | Blackcatdog | Black | +------+-------------+---------+
Pokud tedy řetězec není nic jiného než mezera, můžeme jej nahradit jiným řetězcem:
SELECT REPLACE(' ', ' ', 'cat'); Výsledek:
+--------------------------+
| REPLACE(' ', ' ', 'cat') |
+--------------------------+
| cat |
+--------------------------+ Nulové argumenty
Poskytování null výsledkem je null :
SELECT
REPLACE(null, 'dog', 'cat') AS "1",
REPLACE('Black dog', null, 'cat') AS "2",
REPLACE('Black dog', 'dog', null) AS "3"; Výsledek:
+------+------+------+ | 1 | 2 | 3 | +------+------+------+ | NULL | NULL | NULL | +------+------+------+
Chybí argument
Volání REPLACE() s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:
SELECT REPLACE(); Výsledek:
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