BD: MySQL
Pregunta: ¿Como puedo concatenar campos y valores cuando pueden haber NULL?
Respuesta:
La función CONCAT() devuelve NULL siempre que alguno de sus argumentos es NULL. Esto nos puede dar problemas al usar instrucciones como:
Código:
UPDATE tabla SET nombre_completo = CONCAT(nombre, " - ", apellidos)
Los registros donde
nombre y
apellido no sean NULL, podrán obtener un
nombre_completo, pero si
nombre o
apellido son NULL, el registro no tendrá <i>nombre_completo</i>.
¿Cómo solucionamos este problema? Utilizando la función COALESCE().
COALESCE devuelve el primer argumento diferente de NULL que se le atorgue. Es decir:
Devuelve "hola"
Devuelve "hola"
Aprovechando esto, podemos hacer:
Código:
UPDATE tabla SET nombre_completo = CONCAT(COALESCE(nombre, ""), " - ", COALESCE(apellidos, ""))
Ahora ya podremos obtener un
nombre_completo para todos los registros :D