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

Como inserir uma string em outra string no MySQL usando INSERT ()


No MySQL, você pode usar o INSERT() função para inserir uma string em outra string.

Você pode substituir partes da string por outra string (por exemplo, substituir uma palavra) ou inseri-la mantendo a string original (por exemplo, adicionar uma palavra). A função aceita 4 argumentos que determinam qual é a string original, a posição com a qual inserir a nova string, o número de caracteres a serem excluídos da string original e a nova string a ser inserida.

Aqui está a sintaxe:
INSERT(str,pos,len,newstr)

Onde str é a string original, pos é a posição em que a nova string será inserida, len é o número de caracteres a serem excluídos da string original e newstr é a nova string a ser inserida.


Substituir uma palavra


Aqui está um exemplo onde eu uso INSERT() para substituir uma palavra dentro de uma string:
SELECT INSERT('Cats and dogs', 6, 3, 'like');

Resultado:
Cats like dogs

Isso substitui efetivamente a palavra and com a palavra like . Eu usei 6 porque a palavra e começou na marca de 6 caracteres, e eu usei 3 porque é quantos caracteres quero excluir (a palavra and tem 3 caracteres).

Inserir uma palavra


Aqui eu simplesmente insiro uma palavra sem excluir nada da string original:
SELECT INSERT('Cats and dogs', 10, 0, 'big ');

Resultado:
Cats and big dogs

A razão pela qual isso não exclui nada da string original é porque eu especifiquei 0 (o que significa que zero caracteres devem ser excluídos).

Valores fora do intervalo


Se você especificar uma posição que esteja fora do comprimento da string original, o MySQL retornará a string original inalterada.

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

Resultado:
Cats and dogs

Aqui está outro exemplo onde eu uso uma posição inicial negativa:
SELECT INSERT('Cats and dogs', -1, 4, 'rabbits');

Resultado:
Cats and dogs

Esta é uma das diferenças entre o INSERT() do MySQL função e STUFF() do Transact-SQL função. Em T-SQL, o STUFF() função retornaria NULL nesses casos.

Inserindo valores NULL


Outra área onde o INSERT() do MySQL difere do STUFF() do T-SQL está com valores NULL. Se você tentar inserir um valor NULL, o MySQL retornará NULL .
SELECT INSERT('Cats and dogs', 6, 3, NULL);

Resultado:
NULL