I MariaDB, INSERT()
är en inbyggd strängfunktion som låter dig infoga en delsträng i en annan sträng.
Syntax
Syntaxen ser ut så här:
INSERT(str,pos,len,newstr)
Där str
är strängen, pos
är startpositionen för infogningen, len
är antalet tecken som ska ersättas och newstr
är delsträngen som ska infogas.
Exempel
Här är ett grundläggande exempel:
SELECT INSERT('The hot sun', 5, 3, 'red');
Resultat:
+------------------------------------+ | INSERT('The hot sun', 5, 3, 'red') | +------------------------------------+ | The red sun | +------------------------------------+
Här bytte jag ut ordet hot
med ordet red
.
Nedan finns fler exempel för att visa hur positions- och längdargumenten kan påverka resultatet.
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";
Resultat:
+-----------------+--------------------+----------------+ | 1 | 2 | 3 | +-----------------+--------------------+----------------+ | The red hot sun | The black hole sun | Black hole sun | +-----------------+--------------------+----------------+
Fel startposition
Om startpositionen är utanför strängens längd, returneras den ursprungliga strängen.
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";
Resultat:
+-------------+-------------+-------------+ | 1 | 2 | 3 | +-------------+-------------+-------------+ | The hot sun | The hot sun | The hot sun | +-------------+-------------+-------------+
Långa argument
Om längden (tredje argumentet) är lika lång som eller längre än resten av strängen, ersätts resten av strängen med understrängen.
Exempel:
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";
Resultat:
+----------+------------------+------------------+------+ | 1 | 2 | 3 | 4 | +----------+------------------+------------------+------+ | The red | The hot pavement | The hot pavement | red | +----------+------------------+------------------+------+
Nollargument
Tillhandahåller null
för något av argumenten resulterar i 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";
Resultat:
+------+------+------+------+ | 1 | 2 | 3 | 4 | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
Ange fel antal argument
Anropar INSERT()
med fel antal argument, eller utan att skicka några argument resulterar i ett fel:
SELECT INSERT();
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