2010-02-13 15 views
10
SELECT Concat(mp.cHospital ,',',mp.cHospital1,',',mp.cHospital2) as Hospital FROM TBL 

no quiero volver valor nulo,MySQL no nula

cómo comprobar no nulo o cómo hacer cond isset en consulta

Respuesta

17

Por definición (casi) cualquier operación con NULL dará como resultado NULL ya que NULL significa "sin definir". Interpreto su pregunta de que ya sea cHospital o cHospital1 o cHospital3 podría ser NULL, que desea verificar. La pregunta es: ¿qué debería pasar? ¿Quieres reemplazar el campo con un movimiento vacío y luego el concat o todo?

Supongo que el primero. que podría tener este aspecto:

SELECT Concat(
    IFNULL(mp.cHospital, ''), 
    ',', 
    IFNULL(mp.cHospital1,''), 
    ',', 
    IFNULL(mp.cHospital2,'')) AS Hospital 
FROM TBL 

IFNULL devuelve la primera parte, a menos que su NULL donde vuelve la segunda parte (cadena vacía aquí).

http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html#function_ifnull

+0

[alt text] [1] ver captura de pantalla PLZ [1]: http://img407.imageshack.us/img407/711/mysqlconcatprob.jpg – Bharanikumar

+1

no sé lo que quiere. – johannes

+0

Probé lo anterior si la condición nula, incluso a través de la null ans – Bharanikumar

1
COALESCE(val1, val2, val3, ...) 

devolverá el primer valor no nulo, por ejemplo

COALESCE(@val, '') 

volverá cadena vacía si @val es nulo.