V MariaDB INSERT()
je vestavěná funkce řetězce, která vám umožňuje vložit podřetězec do jiného řetězce.
Syntaxe
Syntaxe vypadá takto:
INSERT(str,pos,len,newstr)
Kde str
je řetězec, pos
je počáteční pozice pro vložku, len
je počet znaků, které se mají nahradit, a newstr
je podřetězec, který se má vložit.
Příklad
Zde je základní příklad:
SELECT INSERT('The hot sun', 5, 3, 'red');
Výsledek:
+------------------------------------+ | INSERT('The hot sun', 5, 3, 'red') | +------------------------------------+ | The red sun | +------------------------------------+
Zde jsem nahradil slovo hot
se slovem red
.
Níže jsou uvedeny další příklady, které demonstrují, jak mohou argumenty pozice a délky ovlivnit výsledek.
SELECT
INSERT('The hot sun', 5, 0, 'red ') AS "1",
INSERT('The hot sun', 5, 3, 'black hole') AS "2",
INSERT('The hot sun', 1, 7, 'Black hole') AS "3";
Výsledek:
+-----------------+--------------------+----------------+ | 1 | 2 | 3 | +-----------------+--------------------+----------------+ | The red hot sun | The black hole sun | Black hole sun | +-----------------+--------------------+----------------+
Špatná výchozí pozice
Pokud je počáteční pozice mimo délku řetězce, vrátí se původní řetězec.
SELECT
INSERT('The hot sun', 0, 3, 'red ') AS "1",
INSERT('The hot sun', -5, 3, 'red') AS "2",
INSERT('The hot sun', 20, 3, 'red') AS "3";
Výsledek:
+-------------+-------------+-------------+ | 1 | 2 | 3 | +-------------+-------------+-------------+ | The hot sun | The hot sun | The hot sun | +-------------+-------------+-------------+
Dlouhé argumenty
Pokud je délka (třetí argument) stejně dlouhá nebo delší než zbytek řetězce, bude zbytek řetězce nahrazen podřetězcem.
Příklad:
SELECT
INSERT('The hot sun', 5, 10, 'red ') AS "1",
INSERT('The hot sun', 9, 3, 'pavement') AS "2",
INSERT('The hot sun', 9, 4, 'pavement') AS "3",
INSERT('The hot sun', 1, 20, 'red') AS "4";
Výsledek:
+----------+------------------+------------------+------+ | 1 | 2 | 3 | 4 | +----------+------------------+------------------+------+ | The red | The hot pavement | The hot pavement | red | +----------+------------------+------------------+------+
Nulové argumenty
Poskytování null
pro kterýkoli z argumentů je výsledkem null
:
SELECT
INSERT(null, 5, 10, 'red ') AS "1",
INSERT('The hot sun', null, 3, 'pavement') AS "2",
INSERT('The hot sun', 9, null, 'pavement') AS "3",
INSERT('The hot sun', 1, 20, null) AS "4";
Výsledek:
+------+------+------+------+ | 1 | 2 | 3 | 4 | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
Uvedení nesprávného počtu argumentů
Volání INSERT()
s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:
SELECT INSERT();
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