Ver Mensaje Individual
  #4 (permalink)  
Antiguo 29/01/2009, 17:18
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: 16 años, 5 meses
Puntos: 2658
Respuesta: evitar columna null en mysql

Para evitar una columna en NULL, lo primero es no invocarla si no la vas a usar. Hacer un SELECT * FROM ... es la peor forma de consulta si no vas a usar realmente TODAS las columnas. Y aún usándolas, si alguna de ellas puede ser NULL, lo que debes hacer es ponerlas todas en el SELECT, para poder administrar el problema.
La cosa es sencilla si usas la función IFNULL(). Supongamos tres campos, uno VARCHAR, uno FLOAT y uno INTEGER, que pueden entrar en NULL:
Código sql:
Ver original
  1. SELECT
  2.     IFNULL(Campo1,'') Campo1,
  3.     IFNULL(Campo2,0.0) Campo2,
  4.     IFNULL(Campo3,0) Campo3
  5. FROM Tabla1;

Estoy poniendo los alias a continuación para que los encabezados de las columnas vuelvan a ser los de la tabla. Sino el encabezado tendrá la forma de la función.
Obviamente, esto no sirve si no se ponen uno por uno los campos a usar...
La otra opción, es eliminar en el WHERE aquellos registros donde pueda darse en NULL:
Código sql:
Ver original
  1. SELECT *
  2. FROM Tabla1
  3. WHERE
  4.      (Campo1 IS NOT NULL OR Campo2 IS NOT NULL OR Campo3 IS NOT NULL);
En este caso se le indica que esos registros no se los muestre.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)