Blog de Gonzalo

FUNCIÓN COALESCE EN MYSQL

La función coalesce en mysql, o función de coalescencia, se usa para reemplazar un valor "null" retornado en una consulta. Supongamos que tenemos una tabla de personas y no tenemos los datos completados. Si hacemos una consulta sobre un campo no completado queda mal mostrar "null". Una solución sería en la programación hacer un "if" y mostrar "No determinado" o lo que sea. Pero podemos evitar tener que andar con "if" por cada campo que puede ser "null". Veamos un ejemplo:


/*
Supongamos que tenemos una tabla usuario
y tenemos el campo "direccion_segunda_residencia" que no es obligatoria.
"direccion_segunda_residencia" que no es obligatoria.
*/

SELECT nombre, apellidos, telefono_contacto, email, direccion, direccion_segunda_residencia
FROM usuarios;
En este caso mostrará el los datos "nombre", "apellidos", "telefono_contacto", "email", "direccion" y si tienen completado el campo "direccion_segunda_residencia" lo mostrará pero sino lo tienen mostrará "null". Para evitarlo habría que hacer:

/*
Supongamos que tenemos una tabla usuario
y tenemos el campo "direccion_segunda_residencia" que no es obligatoria.
"direccion_segunda_residencia" que no es obligatoria.
*/

SELECT nombre, apellidos, telefono_contacto, email, direccion, COALESCE(direccion_segunda_residencia, 'sin segunda residencia')
FROM usuarios;
Se podría usar también la opción de "IFNULL" de mysql pero esta opción solo admite 2 argumwntos y "coalesce" admite n argumentos.
Podeís ver otro ejemplo en el post sobre el modificador rollup de mysql

Compartir en twitter