Conditions multiples ( double WHERE...)

Conditions multiples ( double WHERE...) - SQL/NoSQL - Programmation

Marsh Posté le 07-12-2006 à 16:22:06    

Bonjour à tous,
après avoir passer 3 jours à developper une petite appli sous php/MySQL, je bloque face a un soucis assez bete il me semble....
J'ai besoin d'afficher dans un tableau (ca pas de soucis) le resultat dune requete qui devra tester 2 champ...Un devra contenir une suite (passer en variable ---> ca ca passe) ET un autre champ devra etre vide...
Comment tester un chmap vide?
J'ai tester les  
 

Code :
  1. sql="SELECT cle, cod, longueur, skid, qte, of  FROM stock WHERE cod LIKE '%1015%' AND of = NULL ";


Code :
  1. $sql="SELECT cle, cod, longueur, skid, qte, of  FROM stock WHERE cod LIKE '%1015%'AND of = 0 ";


Code :
  1. $sql="SELECT cle, cod, longueur, skid, qte, of  FROM stock WHERE cod LIKE '%1015%'AND of LIKE NULL ";


Code :
  1. $sql="SELECT cle, cod, longueur, skid, qte, of  FROM stock WHERE cod LIKE '%1015%'AND of LIKE 0 ";


Le tout avec et sans ' ....La premiere partie de ma requete fonctionne mais la seconde partie me fausse mon resultat ( soit affichage complet donc sans se soucier de la 2nd condition, soit aucun resultat..)
 
Par avance merci a qui pourra me venir en aide.
++

Reply

Marsh Posté le 07-12-2006 à 16:22:06   

Reply

Marsh Posté le 07-12-2006 à 16:33:07    

$sql="SELECT cle, cod, longueur, skid, qte, of  FROM stock WHERE cod LIKE '%1015%'AND of is NULL ";
ne passe pas non plus...Quelle valeur a donc ce champ vide...
 
++

Reply

Marsh Posté le 07-12-2006 à 16:36:24    

et of = '' ca donne quoi?

Reply

Marsh Posté le 07-12-2006 à 17:16:32    

dwogsi a écrit :

et of = '' ca donne quoi?


ça dépend du type du champ, et de la gestion de la chaine vide : si "ANSI NULL" est activé, alors "" = null mais si on bosse avec la norme SQL92, '' != null
 
 
le plus simple étant :
 
where nvl(champ, '') = ''
 
comme ça, que ce soit '' ou null, et que ANSI NULL soit activé ou non, ça marche tout le temps :sol:


Message édité par MagicBuzz le 07-12-2006 à 17:17:16
Reply

Marsh Posté le 07-12-2006 à 17:26:26    

Yep, sympa pour l'aide....
Dans mes tests j'avais en plsu mi la valeur du champ of en NON NULL donc c'etait chaud....
Je l'ai donc passé en NULL par defaut et ca passe avec of =''
 
Merci beaucoup, mon cerveau est en bouilli a force de triturer ce code

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed