Translate

sábado, 1 de agosto de 2026

Las funciones de MySQL que te hacen escribir menos SQL parte 2


Sigo robando con funciones de mysql. 


GROUP_CONCAT()

Esta está rebuena. Convierte varias filas en una sola cadena.


SELECT department,

       GROUP_CONCAT(name ORDER BY name SEPARATOR ', ')

FROM employee

GROUP BY department;


Resultado:

IT        Alice, Bob, Charlie

Finance  John, Mary


Ideal para reportes.


IFNULL()

Reemplaza un NULL por un valor.


SELECT IFNULL(phone, 'No disponible')

FROM customer;


Mucho más limpio que hacerlo desde la aplicación.


COALESCE()

Devuelve el primer valor no nulo.


SELECT COALESCE(mobile, phone, email);


Mucho más flexible que IFNULL().


UUID()

Genera un UUID.


SELECT UUID();


Perfecto para claves distribuidas.


UUID_TO_BIN() y BIN_TO_UUID()

Si almacenás UUID como CHAR(36) desperdiciás espacio y rendimiento.


INSERT INTO customer(id)

VALUES(UUID_TO_BIN(UUID()));


Y para leerlo:

SELECT BIN_TO_UUID(id)

FROM customer;


Es una mejora de rendimiento bastante importante para tablas grandes.


JSON_PRETTY()

Cuando trabajás con columnas JSON.


SELECT JSON_PRETTY(profile)

FROM customer;


En lugar de:

{"name":"John","age":35,"roles":["admin","user"]}


Obtendrás:

{

  "name": "John",

  "age": 35,

  "roles": [

    "admin",

    "user"

  ]

}


Ideal para debugging.


JSON_EXTRACT()

Leer propiedades de un JSON sin traerlo completo.


SELECT JSON_EXTRACT(profile, '$.address.city');


o el operador corto


SELECT profile->'$.address.city';


REGEXP_REPLACE()

Reemplazo usando expresiones regulares.


SELECT REGEXP_REPLACE(

    'Tel: 343-555-1234',

    '[0-9]',

    'X');


Resultado

Tel: XXX-XXX-XXXX


FORMAT()

Formatea números.


SELECT FORMAT(1234567.891, 2);


Resultado

1,234,567.89


Muy útil para reportes.


TIMESTAMPDIFF()

Calcular diferencias de fechas.


SELECT TIMESTAMPDIFF(

    YEAR,

    birth_date,

    CURDATE())

FROM employee;


Obtiene la edad.


Y si se me olvidó alguna, ponela en los comentarios. 

No hay comentarios.:

Publicar un comentario