MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Fonctionnement de la fonction INSERT() dans MariaDB

Dans MariaDB, INSERT() est une fonction de chaîne intégrée qui vous permet d'insérer une sous-chaîne dans une autre chaîne.

Syntaxe

La syntaxe ressemble à ceci :

INSERT(str,pos,len,newstr)

str est la chaîne, pos est la position de départ de l'insert, len est le nombre de caractères à remplacer, et newstr est la sous-chaîne à insérer.

Exemple

Voici un exemple de base :

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

Résultat :

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

Ici, j'ai remplacé le mot hot avec le mot red .

Vous trouverez ci-dessous d'autres exemples pour démontrer comment les arguments de position et de longueur peuvent affecter le résultat.

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

Résultat :

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

Mauvaise position de départ

Si la position de départ est en dehors de la longueur de la chaîne, la chaîne d'origine est renvoyée.

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

Résultat :

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

Arguments longs

Si la longueur (troisième argument) est aussi longue ou plus longue que le reste de la chaîne, le reste de la chaîne est remplacé par la sous-chaîne.

Exemple :

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

Résultat :

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

Arguments nuls

Fournir null pour l'un des arguments, les résultats sont 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";

Résultat :

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

Fournir le mauvais nombre d'arguments

Appel de INSERT() avec le mauvais nombre d'arguments, ou sans passage d'arguments, une erreur se produit :

SELECT INSERT();

Résultat :

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