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

SELECT campos vacios

Estas en el tema de SELECT campos vacios en el foro de Mysql en Foros del Web. Buenos días a todos, sabe alguien alguna forma para seleccionar el número de campos vacios de un registro? Me explico, imaginar una entrada en una ...
  #1 (permalink)  
Antiguo 09/07/2008, 01:48
 
Fecha de Ingreso: marzo-2007
Mensajes: 89
Antigüedad: 17 años, 1 mes
Puntos: 0
SELECT campos vacios

Buenos días a todos,

sabe alguien alguna forma para seleccionar el número de campos vacios de un registro? Me explico, imaginar una entrada en una tabla de esta forma:

| ID | NOMBRE | TLF | MAIL | OTRO CAMPO |
+---------------------------------------------------+
1 | pepe | | re@re | rererer
2 | juan | | | asdfasdf
3 | maria | | | qwerwr

Entonces, lo que quiero es que el recordset me devuelve el numero de campos vacios del registro con ID=3, es decir, me tiene que devolver 2.
Alguien sabe si hay alguna forma?

Gracias por la ayuda,
edude.
  #2 (permalink)  
Antiguo 09/07/2008, 03:16
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Respuesta: SELECT campos vacios

Hola edude,

Puede que haya otra manera pero la que se me ocurre a mí es combinando mysql con el lenguaje de programación.

Primero haces la query del estilo:
Código:
SELECT * FROM nombre_tabla 
WHERE nombre is null or tlf is null or mail is null or otro_campo is null
Esto te devolverá todos los registros que tienen alguno de esos campos vacíos.
A partir de aquí tienes que recorrer todos los registros devueltos y comparar con el lenguaje de programación que campos están vacíos para sumarlos.

Espero que te haya sido de ayuda!!
Saludos
  #3 (permalink)  
Antiguo 09/07/2008, 07:28
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: SELECT campos vacios

Edude, debes tener clara la diferencia entre nulo y blanco o vacío.
Si buscas los vacíos o blancos
SELECT (
If( campo1= '', 1, 0 ) + If( campo2 = '', 1, 0 ) + If( campo3= '', 1, 0 )
) AS totalblanco
FROM nombretabla
y así con todos los campos de los que quieras contar los blancos.

Para los nulos
SELECT (
If( campo1 is Null, 1, 0 ) + If( campo2 is Null, 1, 0 ) + If( campo3 is Null, 1, 0 )
) AS totalnulos
FROM nombretabla

Si quieres cubrir ambas posibilidades
SELECT (
If( campo1 = '' OR campo1 is Null, 1, 0 ) + If( campo2 = '' OR campo2 is Null, 1, 0 ) + If( campo3 = '' OR campo3 is Null, 1, 0 )
) AS totalsindatos
FROM nombretabla

Sólo he probado la primera.

Última edición por jurena; 09/07/2008 a las 15:48
  #4 (permalink)  
Antiguo 10/07/2008, 05:48
 
Fecha de Ingreso: marzo-2007
Mensajes: 89
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: SELECT campos vacios

Gracias Jurena, justo eso era lo que neceistaba.
Saludos,
edude.
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 13:51.