Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Qual é o equivalente MySQL de STUFF() no SQL Server?


Se você estiver familiarizado com o SQL Server, talvez saiba que pode usar o T-SQL STUFF() função para inserir uma string dentro de uma string. Acontece que o MySQL tem uma função semelhante – mas com um nome diferente.

MySQL INSERT() função faz essencialmente a mesma coisa que o T-SQL STUFF() função faz.

Com exceção de algumas pequenas diferenças (veja abaixo), ambas as funções funcionam exatamente da mesma forma.


Sintaxe


Aqui está a sintaxe oficial de cada uma dessas funções.

T-SQL – A função STUFF()

STUFF ( character_expression , start , length , replaceWith_expression )

MySQL – A função INSERT()

INSERT(str,pos,len,newstr)

Embora cada uma dessas definições use uma terminologia diferente, elas basicamente fazem a mesma coisa.

Exemplos


Aqui está um exemplo de cada uma dessas funções em ação.

T-SQL – A função STUFF()

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

Resultado:
Cats like dogs

MySQL – A função INSERT()

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

Resultado:
Cats like dogs

Como você pode ver, a única diferença é o nome da função. Podemos portar um para o outro simplesmente alterando o nome da função.

Diferenças entre STUFF() e INSERT()


Existem algumas diferenças em como essas funções funcionam. Em particular, as duas principais diferenças são como eles lidam com:
  • Posições fora do intervalo
  • Valores NULOS

Essas diferenças são explicadas a seguir.

Posições fora do intervalo


Se você tentar inserir em uma posição que está fora do comprimento da string original, o INSERT() do MySQL A função retornará a string original. Por outro lado, o STUFF() do T-SQL função retornará NULL .

T-SQL – A função STUFF()

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

Resultado:
NULL

MySQL – A função INSERT()

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

Resultado:
Cats and dogs

Valores NULOS


Essas duas funções também diferem na forma como lidam com quaisquer valores NULL que você tenta inserir.

T-SQL – A função STUFF()

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

Resultado:
Cats dogs

T-SQL – A função INSERT()

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

Resultado:
NULL