I MariaDB, INSERT()
er en indbygget strengfunktion, der giver dig mulighed for at indsætte en understreng i en anden streng.
Syntaks
Syntaksen ser sådan ud:
INSERT(str,pos,len,newstr)
Hvor str
er strengen, pos
er startpositionen for indsatsen, len
er antallet af tegn, der skal erstattes, og newstr
er understrengen, der skal indsættes.
Eksempel
Her er et grundlæggende eksempel:
SELECT INSERT('The hot sun', 5, 3, 'red');
Resultat:
+--------------------------------------------+| INSERT('Den varme sol', 5, 3, 'rød') |+-------------------------------- ----+| Den røde sol |+--------------------------------------------+
Her erstattede jeg ordet hot
med ordet red
.
Nedenfor er flere eksempler for at demonstrere, hvordan positions- og længdeargumenterne kan påvirke 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 |+----------------+--------------------+-------- --------+| Den rødglødende sol | Det sorte huls sol | Sort hul sol |+----------------+--------------------+------ ----------+
Forkert startposition
Hvis startpositionen er uden for længden af strengen, returneres den oprindelige streng.
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 |+-------------+-------------+-------------+| Den varme sol | Den varme sol | Den varme sol |+------------------------------------------------------------------------------------------------------------------------------------------------+>Argumenter af lang længde
Hvis længden (tredje argument) er lige så lang som eller længere end resten af strengen, erstattes resten af strengen med understrengen.
Eksempel:
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 |+------+--------------------+---------------- -+------+| Den røde | Den varme fortov | Den varme fortov | rød |+----------+-------------------+----------------- -+------+Nul-argumenter
Giver
null
for ethvert af argumenterne resulterer inull
: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 |+------+------+------+------+Angivelse af det forkerte antal argumenter
Kalder
INSERT()
med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:SELECT INSERT();
Resultat:
FEJL 1064 (42000):Du har en fejl i din SQL-syntaks; tjek manualen, der svarer til din MariaDB-serverversion for den rigtige syntaks til brug i nærheden af ')' på linje 1