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

Come funziona la funzione INSERT() in MariaDB

In MariaDB, INSERT() è una funzione di stringa incorporata che ti permette di inserire una sottostringa in un'altra stringa.

Sintassi

La sintassi è questa:

INSERT(str,pos,len,newstr)

Dove str è la stringa, pos è la posizione iniziale per l'inserto, len è il numero di caratteri da sostituire e newstr è la sottostringa da inserire.

Esempio

Ecco un esempio di base:

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

Risultato:

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

Qui ho sostituito la parola hot con la parola red .

Di seguito sono riportati altri esempi per dimostrare in che modo gli argomenti relativi alla posizione e alla lunghezza possono influenzare il risultato.

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

Risultato:

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

Posizione di partenza sbagliata

Se la posizione iniziale è al di fuori della lunghezza della stringa, viene restituita la stringa originale.

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

Risultato:

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

Argomenti di lunga durata

Se la lunghezza (terzo argomento) è pari o superiore al resto della stringa, il resto della stringa viene sostituito con la sottostringa.

Esempio:

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

Risultato:

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

Argomenti nulli

Fornendo null per qualsiasi argomento risulta 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";

Risultato:

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

Fornire il numero sbagliato di argomenti

Chiamando INSERT() con il numero errato di argomenti o senza passare alcun argomento genera un errore:

SELECT INSERT();

Risultato:

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