Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/05/2013, 13:30
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta por fecha devuelve NULL donde no hay datos

El rpimer problema es que NULL no es un dato. Es un estado, un estado de indefinición, pero un estado al fín.
Como no es un dato, no funcionan con él los operadores lógicos porque no son posibles comparaciones contra la nada. En otros DBMS se pueden hacer, pero no en MySQL.
En ptincipio, si existe la posibilidad de que lleguen nulos tienes varias formas de manejarlo:
1) Programáticamente, todos los lenguajes pueden reconocer si en objeto recibido en la tabla es nulo o no, porque en todos los lenguajes existe un objeto Null, Nothing o Nil. Por ello, lo puedes controlar.
2) A nivel de SQL, sólo se puede manejar con clausulas IS NULL o IS NOT NULL, pero eso sólo en el WHERE o en comparaciones lógicas.
3) En el SELECT, es posible reemplazar un valor NULL por otra cosa, si se desea, por ejemplo por un caracter vacío (vacío y NULL no son lo mismo), pero para ello se debe invocar uno a uno los campos, y no se puede usar el asterisco (*) en el SELECT
Código MySQL:
Ver original
  1. SELECT a, b, c, d, e IFNULL(d, '') d
  2. FROM tabla;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)