No MariaDB,
INSERT()
é uma função de string integrada que permite inserir uma substring em outra string. Sintaxe
A sintaxe fica assim:
INSERT(str,pos,len,newstr)
Onde
str
é a string, pos
é a posição inicial para a inserção, len
é o número de caracteres a serem substituídos e newstr
é a substring a ser inserida. Exemplo
Segue um exemplo básico:
SELECT INSERT('The hot sun', 5, 3, 'red');
Resultado:
+------------------------------------+ | INSERT('The hot sun', 5, 3, 'red') | +------------------------------------+ | The red sun | +------------------------------------+
Aqui eu substituí a palavra
hot
com a palavra red
. Abaixo estão mais exemplos para demonstrar como os argumentos de posição e comprimento podem afetar o resultado.
SELECT
INSERT('The hot sun', 5, 0, 'red ') AS "1",
INSERT('The hot sun', 5, 3, 'black hole') AS "2",
INSERT('The hot sun', 1, 7, 'Black hole') AS "3";
Resultado:
+-----------------+--------------------+----------------+ | 1 | 2 | 3 | +-----------------+--------------------+----------------+ | The red hot sun | The black hole sun | Black hole sun | +-----------------+--------------------+----------------+
Posição inicial errada
Se a posição inicial estiver fora do comprimento da string, a string original será retornada.
SELECT
INSERT('The hot sun', 0, 3, 'red ') AS "1",
INSERT('The hot sun', -5, 3, 'red') AS "2",
INSERT('The hot sun', 20, 3, 'red') AS "3";
Resultado:
+-------------+-------------+-------------+ | 1 | 2 | 3 | +-------------+-------------+-------------+ | The hot sun | The hot sun | The hot sun | +-------------+-------------+-------------+
Argumentos longos
Se o comprimento (terceiro argumento) for tão longo ou maior que o restante da string, o restante da string será substituído pela substring.
Exemplo:
SELECT
INSERT('The hot sun', 5, 10, 'red ') AS "1",
INSERT('The hot sun', 9, 3, 'pavement') AS "2",
INSERT('The hot sun', 9, 4, 'pavement') AS "3",
INSERT('The hot sun', 1, 20, 'red') AS "4";
Resultado:
+----------+------------------+------------------+------+ | 1 | 2 | 3 | 4 | +----------+------------------+------------------+------+ | The red | The hot pavement | The hot pavement | red | +----------+------------------+------------------+------+
Argumentos nulos
Fornecendo
null
para qualquer um dos argumentos resulta em null
:SELECT
INSERT(null, 5, 10, 'red ') AS "1",
INSERT('The hot sun', null, 3, 'pavement') AS "2",
INSERT('The hot sun', 9, null, 'pavement') AS "3",
INSERT('The hot sun', 1, 20, null) AS "4";
Resultado:
+------+------+------+------+ | 1 | 2 | 3 | 4 | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
Fornecendo o número errado de argumentos
Chamando
INSERT()
com o número errado de argumentos ou sem passar nenhum argumento resulta em um erro:SELECT INSERT();
Resultado:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1