MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como a função INSERT() funciona no MariaDB


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