INSERT (función de cadena)

La función INSERT reemplaza una porción de una cadena con otra cadena, a partir de una posición y longitud especificadas. No confundir con la sentencia INSERT INTO para agregar filas.

Sintaxis

INSERT(cadena, posicion, longitud, nueva_cadena)
  • posicion: posición donde empieza el reemplazo (desde 1)
  • longitud: número de caracteres a reemplazar
  • nueva_cadena: texto que se inserta

Ejemplo básico

SELECT INSERT('Hola mundo', 6, 5, 'MySQL') AS resultado;
resultado
Hola MySQL

Reemplaza 5 caracteres (mundo) empezando en la posición 6 con MySQL.

Insertar sin eliminar

Si la longitud es 0, se inserta sin borrar nada:

SELECT INSERT('HolaMundo', 5, 0, ' ') AS resultado;
resultado
Hola Mundo

Reemplazar con texto de diferente longitud

SELECT INSERT('2024-01-15', 1, 4, '2025') AS resultado;
resultado
2025-01-15
SELECT INSERT('Tel: 612345678', 6, 3, '***') AS resultado;
resultado
Tel: ***345678

Ocultar parte de un número

SELECT
    nombre,
    INSERT(telefono, 4, 4, '****') AS telefono_oculto
FROM clientes
LIMIT 5;
nombretelefono_oculto
María612****678
Carlos623****789
Laura634****890
Pedro645****901
Ana656****012

Posición fuera de rango

Si la posición es mayor que la longitud de la cadena, devuelve la cadena original:

SELECT INSERT('Hola', 100, 5, 'mundo') AS resultado;
resultado
Hola

INSERT con NULL

SELECT INSERT(NULL, 1, 5, 'texto') AS resultado;
resultado
NULL

INSERT vs REPLACE (función)

CaracterísticaINSERTREPLACE
Opera porPosiciónContenido
ReemplazaN caracteres desde posición XTodas las ocurrencias del texto
Uso idealModificar posición fijaBuscar y reemplazar texto

En el siguiente artículo veremos INSTR para encontrar la posición de un texto.

Escrito por Eduardo Lázaro