REPLACE
La función REPLACE sustituye todas las ocurrencias de un texto por otro dentro de una cadena.
Sintaxis
REPLACE(cadena, texto_buscar, texto_reemplazo)- Es case-sensitive: distingue entre mayúsculas y minúsculas
- Reemplaza todas las ocurrencias, no solo la primera
Ejemplo básico
SELECT REPLACE('Hola mundo mundo', 'mundo', 'MySQL') AS resultado;| resultado |
|---|
| Hola MySQL MySQL |
SELECT REPLACE('abc-def-ghi', '-', ' ') AS resultado;| resultado |
|---|
| abc def ghi |
Limpiar datos de productos
SELECT
nombre,
REPLACE(nombre, ' ', '-') AS slug
FROM productos
LIMIT 5;| nombre | slug |
|---|---|
| iPhone 15 Pro | iPhone-15-Pro |
| MacBook Air M2 | MacBook-Air-M2 |
| AirPods Pro | AirPods-Pro |
| iPad Air | iPad-Air |
| Apple Watch Series 9 | Apple-Watch-Series-9 |
Generar URLs amigables
SELECT
nombre,
LOWER(REPLACE(REPLACE(nombre, ' ', '-'), '.', '')) AS url_slug
FROM productos
LIMIT 5;| nombre | url_slug |
|---|---|
| iPhone 15 Pro | iphone-15-pro |
| MacBook Air M2 | macbook-air-m2 |
| AirPods Pro | airpods-pro |
| iPad Air | ipad-air |
| Apple Watch Series 9 | apple-watch-series-9 |
REPLACE en UPDATE
-- Cambiar dominio de emails (ejemplo)
-- UPDATE clientes SET email = REPLACE(email, '@viejo.com', '@nuevo.com');Eliminar caracteres
Para eliminar un carácter, reemplázalo con cadena vacía:
SELECT REPLACE('(612) 345-678', '-', '') AS sin_guiones;| sin_guiones |
|---|
| (612) 345678 |
SELECT REPLACE(REPLACE('(612) 345-678', '-', ''), ' ', '') AS limpio;| limpio |
|---|
| (612)345678 |
REPLACE es case-sensitive
SELECT
REPLACE('Hola hola HOLA', 'hola', 'X') AS resultado;| resultado |
|---|
| Hola X HOLA |
Solo reemplazó hola (minúsculas), no Hola ni HOLA.
REPLACE con NULL
SELECT REPLACE(NULL, 'a', 'b') AS resultado;| resultado |
|---|
| NULL |
Reemplazos anidados
SELECT REPLACE(REPLACE(REPLACE('a.b.c', 'a', '1'), 'b', '2'), 'c', '3') AS resultado;| resultado |
|---|
| 1.2.3 |
En el siguiente artículo veremos la función INSERT para insertar texto en una posición específica.
Escrito por Eduardo Lázaro
