sql >> Database >  >> RDS >> MariaDB

Hoe de INSERT()-functie werkt in MariaDB

In MariaDB, INSERT() is een ingebouwde tekenreeksfunctie waarmee u een subtekenreeks in een andere tekenreeks kunt invoegen.

Syntaxis

De syntaxis gaat als volgt:

INSERT(str,pos,len,newstr)

Waar str is de string, pos is de startpositie voor de insert, len is het aantal tekens dat moet worden vervangen, en newstr is de substring die moet worden ingevoegd.

Voorbeeld

Hier is een eenvoudig voorbeeld:

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

Resultaat:

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

Hier heb ik het woord hot vervangen met het woord red .

Hieronder staan ​​meer voorbeelden om te laten zien hoe de argumenten voor positie en lengte de uitkomst kunnen beïnvloeden.

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

Resultaat:

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

Verkeerde startpositie

Als de startpositie buiten de lengte van de string ligt, wordt de originele string geretourneerd.

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

Resultaat:

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

Argumenten van lange duur

Als de lengte (derde argument) even lang is als of langer is dan de rest van de tekenreeks, wordt de rest van de tekenreeks vervangen door de subtekenreeks.

Voorbeeld:

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

Resultaat:

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

Nullargumenten

null opgeven voor elk van de argumenten resulteert in 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";

Resultaat:

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

Het verkeerde aantal argumenten geven

INSERT() . aanroepen met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten resulteert in een fout:

SELECT INSERT();

Resultaat:

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. Geen geschikte driver gevonden voor jdbc:postgresql://192.168.1.8:5432/NexentaSearch

  2. Hoe de databasenauwkeurigheid te verbeteren

  3. Voer meerdere query's uit in één Oracle-opdracht in C#

  4. SUBTIME() Voorbeelden – MySQL