sql >> Databasteknik >  >> RDS >> MariaDB

Hur INSERT()-funktionen fungerar i MariaDB

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

  1. Säkerhetskopiera en SQLite-databas

  2. Hur schemalägger man ett jobb i Oracle SQL Developer?

  3. MySQL använder inte index med WHERE IN-klausul?

  4. Felkod:1406. Data för lång för kolumn - MySQL