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