Ver Mensaje Individual
  #3 (permalink)  
Antiguo 13/03/2013, 12:13
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: No mostrar campos vacíos

Hola Safre:

Cuando publiques una pregunta en el foro trata de ser lo más claro que puedas en cuanto a lo que quieras obtener. Tu descripción de lo que quieres hacer es demasiado vaga, por lo que resulta complicado darte una respuesta puntual.

Cita:
Quiero hacer una consulta a una base de datos pero que no muestre los campos vacíos de cada regístro
Aquí lo puedo tomar de dos formas, una sería que no quieres que aparezcan campos con en valor NULL o no quieres mostrar registros que tengan algún campo NULL. Checa este ejemplo para ver si te sirve en lo que quieres hacer. Supongamos que tenemos los siguientes datos:

Código MySQL:
Ver original
  1. mysql> SELECT campo1, campo2 FROM tabla;
  2. +--------+--------+
  3. | campo1 | campo2 |
  4. +--------+--------+
  5. | uno    |      1 |
  6. | dos    |   NULL |
  7. | NULL   |      3 |
  8. | NULL   |   NULL |
  9. +--------+--------+
  10. 4 rows in set (0.00 sec)

La función IFNULL te sirve para colocar un valor por defecto cuando el campo al que hace referencia tenga un valor de nulo, es decir:

Código MySQL:
Ver original
  1. mysql> SELECT
  2.     -> IFNULL(campo1, 'campo1 esta vacio') campo1,
  3.     -> IFNULL(campo2, 'campo2 esta vacio') campo2
  4.     -> FROM tabla;
  5. +-------------------+-------------------+
  6. | campo1            | campo2            |
  7. +-------------------+-------------------+
  8. | uno               | 1                 |
  9. | dos               | campo2 esta vacio |
  10. | campo1 esta vacio | 3                 |
  11. | campo1 esta vacio | campo2 esta vacio |
  12. +-------------------+-------------------+
  13. 4 rows in set (0.00 sec)

La otra forma que puedes hacer para no mostrar campos con valores nulos, sería filtrarlos desde el WHERE poniendo IS NOT NULL para todos los campos:

Código MySQL:
Ver original
  1. mysql> SELECT campo1, campo2 FROM tabla
  2.     -> WHERE campo1 IS NOT NULL AND campo2 IS NOT NULL;
  3. +--------+--------+
  4. | campo1 | campo2 |
  5. +--------+--------+
  6. | uno    |      1 |
  7. +--------+--------+
  8. 1 row in set (0.00 sec)

Espero que te sirva, pero si sigues con problemas, tómate el tiempo para escribir más de una línea de texto y explicar a detalle qué es lo que necesitas.

Saludos
Leo.