In MariaDB, INSERT()
is een ingebouwde tekenreeksfunctie waarmee u een subtekenreeks in een andere tekenreeks kunt invoegen.
Syntaxis
De syntaxis gaat als volgt:
INSERT(str,pos,len,newstr)
Waar str
is de string, pos
is de startpositie voor de insert, len
is het aantal tekens dat moet worden vervangen, en newstr
is de substring die moet worden ingevoegd.
Voorbeeld
Hier is een eenvoudig voorbeeld:
SELECT INSERT('The hot sun', 5, 3, 'red');
Resultaat:
+------------------------------------+ | INSERT('The hot sun', 5, 3, 'red') | +------------------------------------+ | The red sun | +------------------------------------+
Hier heb ik het woord hot
vervangen met het woord red
.
Hieronder staan meer voorbeelden om te laten zien hoe de argumenten voor positie en lengte de uitkomst kunnen beïnvloeden.
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";
Resultaat:
+-----------------+--------------------+----------------+ | 1 | 2 | 3 | +-----------------+--------------------+----------------+ | The red hot sun | The black hole sun | Black hole sun | +-----------------+--------------------+----------------+
Verkeerde startpositie
Als de startpositie buiten de lengte van de string ligt, wordt de originele string geretourneerd.
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";
Resultaat:
+-------------+-------------+-------------+ | 1 | 2 | 3 | +-------------+-------------+-------------+ | The hot sun | The hot sun | The hot sun | +-------------+-------------+-------------+
Argumenten van lange duur
Als de lengte (derde argument) even lang is als of langer is dan de rest van de tekenreeks, wordt de rest van de tekenreeks vervangen door de subtekenreeks.
Voorbeeld:
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";
Resultaat:
+----------+------------------+------------------+------+ | 1 | 2 | 3 | 4 | +----------+------------------+------------------+------+ | The red | The hot pavement | The hot pavement | red | +----------+------------------+------------------+------+
Nullargumenten
null
opgeven voor elk van de argumenten resulteert in 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";
Resultaat:
+------+------+------+------+ | 1 | 2 | 3 | 4 | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
Het verkeerde aantal argumenten geven
INSERT()
. aanroepen met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten resulteert in een fout:
SELECT INSERT();
Resultaat:
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