Mysql
 sql >> Database >  >> RDS >> Mysql

Come inserire una stringa in un'altra stringa in MySQL usando INSERT()

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