sql >> Base de Datos >  >> RDS >> Mysql

¿Cuál es el equivalente MySQL de STUFF() en SQL Server?

Si está familiarizado con SQL Server, es posible que sepa que puede usar T-SQL STUFF() función para insertar una cadena dentro de una cadena. Resulta que MySQL tiene una función similar, pero con un nombre diferente.

INSERT() de MySQL hace esencialmente lo mismo que T-SQL STUFF() la función lo hace.

Con la excepción de un par de diferencias menores (ver más abajo), ambas funciones funcionan exactamente igual.

Sintaxis

Aquí está la sintaxis oficial de cada una de estas funciones.

T-SQL:la función STUFF()

STUFF ( character_expression , start , length , replaceWith_expression )

MySQL:la función INSERTAR()

INSERT(str,pos,len,newstr)

Aunque cada una de estas definiciones utiliza una terminología diferente, básicamente hacen lo mismo.

Ejemplos

Aquí hay un ejemplo de cada una de estas funciones en acción.

T-SQL:la función STUFF()

SELECT STUFF('Cats and dogs', 6, 3, 'like');

Resultado:

Cats like dogs

MySQL:la función INSERTAR()

SELECT INSERT('Cats and dogs', 6, 3, 'like');

Resultado:

Cats like dogs

Como puede ver, la única diferencia es el nombre de la función. Podemos portar uno al otro simplemente cambiando el nombre de la función.

Diferencias entre STUFF() e INSERT()

Hay un par de diferencias en cómo funcionan estas funciones. En particular, las dos principales diferencias son cómo tratan:

  • Posiciones fuera de rango
  • Valores NULOS

Estas diferencias se explican a continuación.

Posiciones fuera de rango

Si intenta insertar en una posición que está fuera de la longitud de la cadena original, INSERT() de MySQL La función devolverá la cadena original. Por otro lado, STUFF() de T-SQL la función devolverá NULL .

T-SQL:la función STUFF()

SELECT STUFF('Cats and dogs', 20, 4, 'rabbits');

Resultado:

NULL

MySQL:la función INSERTAR()

SELECT INSERT('Cats and dogs', 20, 4, 'rabbits');

Resultado:

Cats and dogs

Valores NULOS

Estas dos funciones también difieren en cómo tratan cualquier valor NULL que intente insertar.

T-SQL:la función STUFF()

SELECT STUFF('Cats and dogs', 6, 3, NULL);

Resultado:

Cats dogs

T-SQL:la función INSERTAR()

SELECT INSERT('Cats and dogs', 6, 3, NULL);

Resultado:

NULL