probleme de requete sql et champs de valeur null...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme de requete sql et champs de valeur null...

par BeRoots » 01 juil. 2007, 10:25

c'est vrai que le mise en form est ageable à lire ;)
merci pour votre aide à tous en tout cas :)

par zeus » 29 juin 2007, 13:38

Bah non, regarde ... :roll:
Bon d'accord, j'ai édité mon message 8-|

par orgerix » 29 juin 2007, 12:38

Zeus, il y a une parenthèse en trop après la première condition :wink:

par zeus » 29 juin 2007, 12:20

Pour être très honnête et un peu tatillon, dans ce genre de requête, je mettrais une mise en forme différente ;)

Code : Tout sélectionner

SELECT * FROM table_goldbook WHERE avertissement IS NULL OR ( avertissement = 'wanted' AND ticket_xhtml IS NOT NULL )
Selon moi, cette mise en forme est très claire à lire et à comprendre ;)

par BeRoots » 29 juin 2007, 09:12

OK merci les gars ça fonctionne :)

que penser vous de cette formulation:

Code : Tout sélectionner

SELECT * FROM table_goldbook WHERE avertissement IS NULL OR ( avertissement = 'wanted' AND ticket_xhtml IS NOT NULL )

par zeus » 29 juin 2007, 07:42

Effectivement, c'est plus clair.

J'ai pourtant essayé de le tourner dans tout les sens pour le rendre plus clair, mais j'avais pas trouvé.

Merci Hubert

par Hubert Roksor » 29 juin 2007, 01:10

Je me suis permis de remplacer "et" par "plus", qui a l'avantage d'être sémantiquement correct tout en évitant tout risque de confusion avec l'opérateur booléen "et" ;)

par zeus » 28 juin 2007, 23:32

Tu veux récupérer les enregistrements qui satisfont condition1 plus ceux qui satisfont condition2.

Si tu écrit

Code : Tout sélectionner

condition1 AND condition2
tu auras l'intersection des 2 conditions, c'est à dire les enregistrements qui satisfont condition1 et condition2

Toi, tu désires l'addition des 2 conditions, soit les enregistrements qui satisfont condition1 ou condition2

par BeRoots » 28 juin 2007, 22:29

mon truc c'est que je veut recuperer les enregistrements dont avertissement = null et aussi ceux dont avertissement = wanted et dont le champ ticket_xhtml != null

si quelqu'un a une idée a me proposer ;)

par zeus » 28 juin 2007, 15:27

Bien vu Sekiltoyai :pouce:

Il y a un OR qui est devenu un AND pendant la remise en forme ;)

par Sékiltoyai » 28 juin 2007, 14:24

Code : Tout sélectionner

WHERE `avertissement` IS NULL AND ( `avertissement` = 'wanted' AND `ticket_xhtml` IS NULL )
Les conditions

Code : Tout sélectionner

`avertissement` IS NULL
et

Code : Tout sélectionner

`avertissement` = 'wanted'
ne peuvent pas être vraies en même temps...

par zeus » 28 juin 2007, 12:20

Comme tu as du le voir quand tu as posté ton message, il nous faudrait un échantillon de tes données ;)

par BeRoots » 28 juin 2007, 10:43

OK j'ai fait comme suit pour recuperer touts les enregistrements dont avertissement et soit null soit egal à wanted avec ticket_xhtml à null.

Code : Tout sélectionner

SELECT * FROM table_goldbook WHERE `avertissement` IS NULL AND ( `avertissement` = 'wanted' AND `ticket_xhtml` IS NULL )
rien n'est retourner :(

si quelqu'un peut m'aider ;)

par Hubert Roksor » 27 juin 2007, 23:31

J'aimerais corriger le malentendu sur NULL/'null'/ISNULL()
  • 'null' est une chaîne de caractère
  • NULL (sans les guillemets) est la valeur NULL (peu importe la casse)
  • si vous voulez vérifier que quelque chose est NULL, utilisez plutôt la forme

    Code : Tout sélectionner

    WHERE nom_colonne IS NULL

par AB » 27 juin 2007, 23:23

Et si tu enlèves les ` c'est pareil?