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