sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona la función INSERT() en MariaDB

En MariaDB, INSERT() es una función de cadena integrada que le permite insertar una subcadena en otra cadena.

Sintaxis

La sintaxis es así:

INSERT(str,pos,len,newstr)

Donde str es la cadena, pos es la posición inicial para la inserción, len es el número de caracteres a reemplazar, y newstr es la subcadena a insertar.

Ejemplo

He aquí un ejemplo básico:

SELECT INSERT('The hot sun', 5, 3, 'red');

Resultado:

+------------------------------------+
| INSERT('The hot sun', 5, 3, 'red') |
+------------------------------------+
| The red sun                        |
+------------------------------------+

Aquí reemplacé la palabra hot con la palabra red .

A continuación hay más ejemplos para demostrar cómo los argumentos de posición y longitud pueden afectar el 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 |
+-----------------+--------------------+----------------+

Posición de inicio incorrecta

Si la posición inicial está fuera de la longitud de la cadena, se devuelve la cadena original.

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 de larga duración

Si la longitud (tercer argumento) es igual o mayor que el resto de la cadena, el resto de la cadena se reemplaza con la subcadena.

Ejemplo:

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

Proporcionar null para cualquiera de los resultados de los argumentos en 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 |
+------+------+------+------+

Proporcionar el número incorrecto de argumentos

Llamando a INSERT() con el número incorrecto de argumentos, o sin pasar ningún argumento da como resultado un error:

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