Se hai familiarità con SQL Server, potresti sapere che puoi utilizzare T-SQL STUFF()
funzione per inserire una stringa all'interno di una stringa. A quanto pare, MySQL ha una funzione simile, ma con un nome diverso.
INSERT()
di MySQL La funzione fa essenzialmente la stessa cosa di T-SQL STUFF()
la funzione lo fa.
Con l'eccezione di un paio di piccole differenze (vedi sotto), entrambe le funzioni funzionano esattamente allo stesso modo.
Sintassi
Ecco la sintassi ufficiale di ciascuna di queste funzioni.
T-SQL:la funzione STUFF()
STUFF ( character_expression , start , length , replaceWith_expression )
MySQL:la funzione INSERT()
INSERT(str,pos,len,newstr)
Sebbene ciascuna di queste definizioni utilizzi una terminologia diversa, sostanzialmente fanno la stessa cosa.
Esempi
Ecco un esempio di ciascuna di queste funzioni in azione.
T-SQL:la funzione STUFF()
SELECT STUFF('Cats and dogs', 6, 3, 'like');
Risultato:
Cats like dogs
MySQL:la funzione INSERT()
SELECT INSERT('Cats and dogs', 6, 3, 'like');
Risultato:
Cats like dogs
Come puoi vedere, l'unica differenza è il nome della funzione. Possiamo trasferire l'uno sull'altro semplicemente cambiando il nome della funzione.
Differenze tra STUFF() e INSERT()
Ci sono un paio di differenze nel modo in cui funzionano queste funzioni. In particolare, le due principali differenze riguardano il modo in cui si comportano:
- Posizioni fuori range
- Valori NULL
Queste differenze sono spiegate di seguito.
Posizioni fuori range
Se provi a inserire in una posizione che è al di fuori della lunghezza della stringa originale, INSERT()
di MySQL funzione restituirà la stringa originale. D'altra parte, STUFF()
di T-SQL funzione restituirà NULL
.
T-SQL:la funzione STUFF()
SELECT STUFF('Cats and dogs', 20, 4, 'rabbits');
Risultato:
NULL
MySQL:la funzione INSERT()
SELECT INSERT('Cats and dogs', 20, 4, 'rabbits');
Risultato:
Cats and dogs
Valori NULL
Queste due funzioni differiscono anche nel modo in cui gestiscono i valori NULL che si tenta di inserire.
T-SQL:la funzione STUFF()
SELECT STUFF('Cats and dogs', 6, 3, NULL);
Risultato:
Cats dogs
T-SQL:la funzione INSERT()
SELECT INSERT('Cats and dogs', 6, 3, NULL);
Risultato:
NULL