Page 1 sur 1

Requête avec IS NOT NULL

Posté : 17 janv. 2010, 15:16
par Stef
Hi!

Je veux faire une requête pour sélectionner une ligne d'une table en fonction d'un champ qui ne doit pas être vide... je ne veux sélectionner qu'une seule ligne et au hasard.

Alors je fais:
mysql_query('SELECT id, titre, urlmp3 FROM posts WHERE urlmp3 IS NOT NULL ORDER BY RAND() LIMIT 1');
Mais je n'obtiens pas le résultat voulu... De cette manière la requête me renvoie quand même des lignes avec un champ urlmp3 vide.

Comment formuler ma requête pour qu'elle me retourne 1 seule ligne, au hasard, et dont le champ en question n'est pas vide?

Re: Requête avec IS NOT NULL

Posté : 17 janv. 2010, 15:19
par zeus
IS NOT NULL ne sélectionne que les champs dont la valeur est NULL, pas vide. ;)
Et un champ contenant une chaine vide n'est pas un champ contenant la valeur NULL

Re: Requête avec IS NOT NULL

Posté : 17 janv. 2010, 15:29
par Stef
IS NOT NULL ne sélectionne que les champs dont la valeur est NULL, pas vide. ;)
Et un champ contenant une chaine vide n'est pas un champ contenant la valeur NULL
Mazette, ça c'est rapide! : )

Oui je viens de me rendre compe de la bévue...

Aussi y a-t-il une autre manière de procéder pour sélectionner un champ non vide?

Re: Requête avec IS NOT NULL

Posté : 17 janv. 2010, 15:37
par Stef
Visiblement ça fonctionne ainsi:
mysql_query('SELECT id, titre, urlmp3 FROM posts WHERE urlmp3 != "" ORDER BY RAND() LIMIT 1');