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;
nombreslug
iPhone 15 ProiPhone-15-Pro
MacBook Air M2MacBook-Air-M2
AirPods ProAirPods-Pro
iPad AiriPad-Air
Apple Watch Series 9Apple-Watch-Series-9

Generar URLs amigables

SELECT
    nombre,
    LOWER(REPLACE(REPLACE(nombre, ' ', '-'), '.', '')) AS url_slug
FROM productos
LIMIT 5;
nombreurl_slug
iPhone 15 Proiphone-15-pro
MacBook Air M2macbook-air-m2
AirPods Proairpods-pro
iPad Airipad-air
Apple Watch Series 9apple-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