sql >> Databáze >  >> RDS >> MariaDB

Jak funguje funkce INSERT() v MariaDB

V MariaDB INSERT() je vestavěná funkce řetězce, která vám umožňuje vložit podřetězec do jiného řetězce.

Syntaxe

Syntaxe vypadá takto:

INSERT(str,pos,len,newstr)

Kde str je řetězec, pos je počáteční pozice pro vložku, len je počet znaků, které se mají nahradit, a newstr je podřetězec, který se má vložit.

Příklad

Zde je základní příklad:

SELECT INSERT('The hot sun', 5, 3, 'red');

Výsledek:

+------------------------------------+
| INSERT('The hot sun', 5, 3, 'red') |
+------------------------------------+
| The red sun                        |
+------------------------------------+

Zde jsem nahradil slovo hot se slovem red .

Níže jsou uvedeny další příklady, které demonstrují, jak mohou argumenty pozice a délky ovlivnit výsledek.

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";

Výsledek:

+-----------------+--------------------+----------------+
| 1               | 2                  | 3              |
+-----------------+--------------------+----------------+
| The red hot sun | The black hole sun | Black hole sun |
+-----------------+--------------------+----------------+

Špatná výchozí pozice

Pokud je počáteční pozice mimo délku řetězce, vrátí se původní řetězec.

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";

Výsledek:

+-------------+-------------+-------------+
| 1           | 2           | 3           |
+-------------+-------------+-------------+
| The hot sun | The hot sun | The hot sun |
+-------------+-------------+-------------+

Dlouhé argumenty

Pokud je délka (třetí argument) stejně dlouhá nebo delší než zbytek řetězce, bude zbytek řetězce nahrazen podřetězcem.

Příklad:

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";

Výsledek:

+----------+------------------+------------------+------+
| 1        | 2                | 3                | 4    |
+----------+------------------+------------------+------+
| The red  | The hot pavement | The hot pavement | red  |
+----------+------------------+------------------+------+

Nulové argumenty

Poskytování null pro kterýkoli z argumentů je výsledkem 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";

Výsledek:

+------+------+------+------+
| 1    | 2    | 3    | 4    |
+------+------+------+------+
| NULL | NULL | NULL | NULL |
+------+------+------+------+

Uvedení nesprávného počtu argumentů

Volání INSERT() s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:

SELECT INSERT();

Výsledek:

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. Top 3 tipy, které potřebujete vědět, abyste mohli psát rychlejší SQL pohledy

  2. Ty zatraceně velké předměty

  3. Funkce pro získání počtu dnů v týdnu mezi dvěma daty kromě svátků

  4. Jak FIELD() funguje v MariaDB