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