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 reemplazarnueva_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;| nombre | telefono_oculto |
|---|---|
| María | 612****678 |
| Carlos | 623****789 |
| Laura | 634****890 |
| Pedro | 645****901 |
| Ana | 656****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ística | INSERT | REPLACE |
|---|---|---|
| Opera por | Posición | Contenido |
| Reemplaza | N caracteres desde posición X | Todas las ocurrencias del texto |
| Uso ideal | Modificar posición fija | Buscar y reemplazar texto |
En el siguiente artículo veremos INSTR para encontrar la posición de un texto.
Escrito por Eduardo Lázaro
