sql >> Database teknologi >  >> RDS >> MariaDB

Sådan fungerer INSERT()-funktionen i MariaDB

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 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 |+------+------+------+------+

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

  1. Forskellige måder at bruge SQL CONVERT date-funktionen på

  2. 2 måder at returnere ASCII-koden for en given karakter i MariaDB

  3. Forskel i MySQL JOIN vs LEFT JOIN

  4. Indrullering af SQL Server i en distribueret XA-transaktion