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

Qual è l'equivalente MySQL di STUFF() in SQL Server?

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