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

select * where "no campo vacío" no funciona

Estas en el tema de select * where "no campo vacío" no funciona en el foro de Mysql en Foros del Web. Intento filtrar los registros con campo email vacío, lo he intentado con empty() e isset() pero no funciona. No sé si es problema de la ...
  #1 (permalink)  
Antiguo 18/06/2006, 04:08
 
Fecha de Ingreso: marzo-2003
Mensajes: 225
Antigüedad: 21 años, 1 mes
Puntos: 0
select * where "no campo vacío" no funciona

Intento filtrar los registros con campo email vacío, lo he intentado con empty() e isset() pero no funciona. No sé si es problema de la sintaxis o de la bd:

$query = "SELECT nombre, apellidos, correo FROM socios2 WHERE $correo != ´´ ";
$query = "SELECT nombre, apellidos, correo FROM socios2 WHERE correo != ´´ ";
$query = "SELECT nombre, apellidos, correo FROM socios2 WHERE strlen(correo)>0";
$query = "SELECT nombre, apellidos, correo FROM socios2 WHERE strlen($correo)>0";

Última edición por jossxx; 18/06/2006 a las 04:14
  #2 (permalink)  
Antiguo 18/06/2006, 04:15
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
Prueba con
Código PHP:
$query "SELECT nombre, apellidos, correo FROM socios2 WHERE correo = '' "
Saludos.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #3 (permalink)  
Antiguo 18/06/2006, 04:31
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
No sé si es problema de la sintaxis o de la bd
Es problema de que estás confunciendo las cosas...

Es importante entender que una Base de Datos en un software independiente y, por lo tanto, tiene su propio lenguaje (el SQL). ¡¡No puedes meter funciones PHP como si se fuesen a ejecutar en la BD!!; separa las cosas.

Te sugiero algún tutorial al respecto (visita las FAQ)... muevo el tema al foro de MySQL que es donde corresponde.

Salu2!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 18/11/2011, 08:17
Avatar de semitasoft  
Fecha de Ingreso: noviembre-2011
Ubicación: Arequipa, Peru, Peru
Mensajes: 8
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: select * where "no campo vacío" no funciona

$query = "SELECT nombre, apellidos, correo FROM socios2 WHERE correo = '' ";
Esto no se usa. Filtraria Correos con espacio. Lo correcto es:
$query = "SELECT nombre, apellidos, correo FROM socios2 WHERE correo is NULL;
  #5 (permalink)  
Antiguo 18/11/2011, 10:42
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: select * where "no campo vacío" no funciona

Ocupas comillas simples o tildes invertidos? xD!

para los correos vacios

Código MySQL:
Ver original
  1. SELECT campos FROM socios2 WHERE correo = '';

para correos NO vacios

Código MySQL:
Ver original
  1. SELECT campos FROM socios2 WHERE correo <> '';


saludos.
  #6 (permalink)  
Antiguo 18/11/2011, 12:08
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: select * where "no campo vacío" no funciona

Hola a todos:

Vayamos por partes... estamos olvidando que en BD un campo nulo NO ES LO MISMO QUE UNA CADENA VACIA, es decir, no es lo mismo poner correo = '' a poner correo = null. observen este script:

Código MySQL:
Ver original
  1. mysql> create table tabla (nombre varchar(10), correo varchar(50));
  2. Query OK, 0 rows affected (0.19 sec)
  3.  
  4. mysql> INSERT INTO tabla VALUES ('uno', '[email protected]'),
  5.     -> ('dos', ''), ('tres', NULL);
  6. Query OK, 3 rows affected (0.03 sec)
  7. Records: 3  Duplicates: 0  Warnings: 0
  8.  
  9. mysql> SELECT * FROM tabla;
  10. +--------+-------------+
  11. | nombre | correo      |
  12. +--------+-------------+
  13. | uno    | [email protected] |
  14. | dos    |             |
  15. | tres   | NULL        |
  16. +--------+-------------+
  17. 3 rows in set (0.00 sec)
  18.  
  19. mysql> SELECT * FROM tabla WHERE correo = '';
  20. +--------+--------+
  21. | nombre | correo |
  22. +--------+--------+
  23. | dos    |        |
  24. +--------+--------+
  25. 1 row in set (0.00 sec)
  26.  
  27. mysql> SELECT * FROM tabla WHERE correo IS NULL;
  28. +--------+--------+
  29. | nombre | correo |
  30. +--------+--------+
  31. | tres   | NULL   |
  32. +--------+--------+
  33. 1 row in set (0.00 sec)
  34.  
  35. mysql> SELECT * FROM tabla WHERE correo = '' OR correo IS NULL;
  36. +--------+--------+
  37. | nombre | correo |
  38. +--------+--------+
  39. | dos    |        |
  40. | tres   | NULL   |
  41. +--------+--------+
  42. 2 rows in set (0.00 sec)

Si observan en el insert en un caso estoy asignando '' al correo, mientras que en otro envío la palabra reservada NULL, en los select's que están debajo se observa entonces los diferentes comportamientos, finalmente la última consulta con la cláusula OR traería todos los registros que tengan asignado una cadena vacía ('') o un valor nulo (NULL)

Saludos
Leo.
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 15:22.