TRIM

La función TRIM elimina espacios en blanco (u otros caracteres especificados) del inicio y final de una cadena.

Sintaxis

-- Eliminar espacios de ambos lados
TRIM(cadena)
 
-- Sintaxis completa
TRIM([{BOTH | LEADING | TRAILING} [caracter] FROM] cadena)
  • BOTH (predeterminado): elimina de ambos lados
  • LEADING: solo del inicio
  • TRAILING: solo del final

Ejemplo básico

SELECT TRIM('   Hola mundo   ') AS resultado;
resultado
Hola mundo
SELECT
    CONCAT('[', '   espacios   ', ']') AS original,
    CONCAT('[', TRIM('   espacios   '), ']') AS trimmed;
originaltrimmed
[ espacios ][espacios]

LEADING, TRAILING y BOTH

SELECT
    CONCAT('[', TRIM(LEADING FROM '   Hola   '), ']') AS leading,
    CONCAT('[', TRIM(TRAILING FROM '   Hola   '), ']') AS trailing,
    CONCAT('[', TRIM(BOTH FROM '   Hola   '), ']') AS both_sides;
leadingtrailingboth_sides
[Hola ][ Hola][Hola]

Eliminar caracteres específicos

SELECT TRIM(BOTH '*' FROM '***Hola***') AS resultado;
resultado
Hola
SELECT TRIM(LEADING '0' FROM '00042') AS resultado;
resultado
42
SELECT TRIM(TRAILING '.' FROM 'Hola...') AS resultado;
resultado
Hola

Limpiar datos de productos

-- Simular datos sucios con espacios
SELECT
    nombre,
    CONCAT('[', TRIM(nombre), ']') AS limpio
FROM productos
LIMIT 3;
nombrelimpio
iPhone 15 Pro[iPhone 15 Pro]
MacBook Air M2[MacBook Air M2]
AirPods Pro[AirPods Pro]

TRIM en WHERE

-- Buscar ignorando espacios extra
SELECT nombre, precio
FROM productos
WHERE TRIM(nombre) = 'iPhone 15 Pro';

TRIM en UPDATE

-- Limpiar espacios de todos los nombres
-- UPDATE productos SET nombre = TRIM(nombre);
-- UPDATE clientes SET email = TRIM(email);

TRIM vs LTRIM vs RTRIM

FunciónEquivalente
TRIM(cadena)TRIM(BOTH FROM cadena)
LTRIM(cadena)TRIM(LEADING FROM cadena)
RTRIM(cadena)TRIM(TRAILING FROM cadena)

La diferencia es que TRIM puede eliminar cualquier carácter, mientras que LTRIM y RTRIM solo eliminan espacios.

En el siguiente artículo veremos LTRIM y RTRIM.

Escrito por Eduardo Lázaro