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:
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>.UPDATE tabla SET nombre_completo = CONCAT(nombre, " - ", apellidos)
¿Cómo solucionamos este problema? Utilizando la función COALESCE().
COALESCE devuelve el primer argumento diferente de NULL que se le atorgue. Es decir:
Código:
Devuelve "hola"COALESCE("hola", NULL)
Código:
Devuelve "hola" COALESCE(NULL, "hola")
Aprovechando esto, podemos hacer:
Código:
Ahora ya podremos obtener un nombre_completo para todos los registros :DUPDATE tabla SET nombre_completo = CONCAT(COALESCE(nombre, ""), " - ", COALESCE(apellidos, ""))









