Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

porque no siempre funciona el IFNULL??

Estas en el tema de porque no siempre funciona el IFNULL?? en el foro de Mysql en Foros del Web. tengo la siguiente consulta, bastante simple la verdad pero en vez de retornarme 0 igual me retorna null @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT ...
  #1 (permalink)  
Antiguo 13/04/2010, 09:13
 
Fecha de Ingreso: julio-2009
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 4
Pregunta porque no siempre funciona el IFNULL??

tengo la siguiente consulta, bastante simple la verdad pero en vez de retornarme 0 igual me retorna null

Código MySQL:
Ver original
  1. SELECT ifnull(kms,0)kms FROM historico_neumaticos WHERE cod_ent=2595;

alguna idea?
__________________
C[^L*]D
[email protected]
tokkaido.blogspot.com
No hay mejor forma de aprender que enseñar
  #2 (permalink)  
Antiguo 13/04/2010, 09:40
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: porque no siempre funciona el IFNULL??

Porque si no encuentra un registro que cumpla con el WHERE, no puede tomar el valor de la columna `kms` para ver si contiene un NULL...
IFNULL() opera sobre valores de columnas devueltas. Si no hay registros devueltos, el valor de la consulta es NULL, y eso no lo puede controlar IFNULL. Eso se controla en las aplicaciones habitualmente.
En tu caso lo que deberías realizar es una consulta con LEFT JOIN de modo que siempre te devolviese al menos algo que IFNULL si pueda iterpretar, como por ejemplo los datos del vehículo contra la tabla de vehículos, y allí si devolvería NULL en ese campo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: ifnull, siempre
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:02.