In MySQL, puoi usare INSERT()
funzione per inserire una stringa in un'altra stringa.
Puoi sostituire parti della stringa con un'altra stringa (ad es. sostituire una parola), oppure puoi inserirla mantenendo la stringa originale (ad es. aggiungere una parola). La funzione accetta 4 argomenti che determinano qual è la stringa originale, la posizione con cui inserire la nuova stringa, il numero di caratteri da eliminare dalla stringa originale e la nuova stringa da inserire.
Ecco la sintassi:
INSERT(str,pos,len,newstr)
Dove str
è la stringa originale, pos
è la posizione in cui verrà inserita la nuova stringa, len
è il numero di caratteri da eliminare dalla stringa originale e newstr
è la nuova stringa da inserire.
Sostituisci una parola
Ecco un esempio in cui utilizzo INSERT()
per sostituire una parola all'interno di una stringa:
SELECT INSERT('Cats and dogs', 6, 3, 'like');
Risultato:
Cats like dogs
Questo sostituisce efficacemente la parola and
con la parola like
. Ho usato 6
perché la parola iniziava con il segno di 6 caratteri e ho usato 3
perché è il numero di caratteri che voglio eliminare (la parola and
è lungo 3 caratteri).
Inserisci una parola
Qui inserisco semplicemente una parola senza cancellare nulla dalla stringa originale:
SELECT INSERT('Cats and dogs', 10, 0, 'big ');
Risultato:
Cats and big dogs
Il motivo per cui questo non elimina nulla dalla stringa originale è perché ho specificato 0
(il che significa che zero caratteri dovrebbero essere eliminati).
Valori fuori intervallo
Se specifichi una posizione che è al di fuori della lunghezza della stringa originale, MySQL restituirà la stringa originale invariata.
Esempio:
SELECT INSERT('Cats and dogs', 20, 4, 'rabbits');
Risultato:
Cats and dogs
Ecco un altro esempio in cui utilizzo una posizione iniziale negativa:
SELECT INSERT('Cats and dogs', -1, 4, 'rabbits');
Risultato:
Cats and dogs
Questa è una delle differenze tra INSERT()
di MySQL funzione e STUFF()
di Transact-SQL funzione. In T-SQL, il STUFF()
funzione restituirebbe NULL
in questi casi.
Inserimento di valori NULL
Un'altra area in cui MySQL è INSERT()
differisce da STUFF()
di T-SQL è con valori NULL. Se provi a inserire un valore NULL, MySQL restituirà NULL
.
SELECT INSERT('Cats and dogs', 6, 3, NULL);
Risultato:
NULL