Ver Mensaje Individual
  #31 (permalink)  
Antiguo 31/01/2003, 12:05
Avatar de Cain
Cain
 
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 4 meses
Puntos: 17
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:
Código:
COALESCE("hola", NULL)
Devuelve "hola"
Código:
COALESCE(NULL, "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
__________________
M a l d i t o F r i k i