IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

le IF dans MySql est il possible?


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 21
    Points : 19
    Points
    19
    Par défaut le IF dans MySql est il possible?
    Bonjours a toute la communautée...

    Voila, tous est dans la question, j essaye effectuer une requete avec un IF dans le select, et je n arrive pas a la faire marcher...

    Je pense, q c moi qui doit faire une erreur, mais je me pose des question ....

    voila, la requete:

    SELECT dateS,
    IF ( STATUS = "Push", count( STATUS) AS 'Push',
    IF ( STATUS = "OK", count(STATUS) AS 'OK'
    FROM test
    GROUP BY dateS, id_mac
    LIMIT 0 , 30

    --> pas moyen d afficher un resultat :-(

    voici un exemple de ma table:

    id dateS id_mac status
    1 06/08/2007 00:AA:BB ok
    2 06/08/2007 00:AA:BB push
    3 06/08/2007 FF:AA:BB push
    4 07/08/2007 00:AA:BB ok
    5 07/08/2007 00:AA:BB push
    6 07/08/2007 FF:AA:BB push

    -- > ce q j aimerais a ma requete affiche:

    dates ok push
    06/08/2007 1 2
    07/08/2007 1 2

  2. #2
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Points : 31
    Points
    31
    Par défaut
    La syntaxe du IF sous mysql est :
    IF("tontest", si oui, si non)

    Si le test est valide, il prend le deuxième paramètre et sinon il prend le troisième.

    Dans ton cas, on aurait :

    SELECT dateS,
    IF ( STATUS = "Push", count( STATUS), 0) AS 'Push',
    IF ( STATUS = "OK", count(STATUS),0) AS 'OK'
    FROM test
    GROUP BY dateS
    LIMIT 0 , 30;

    Au fait, tu ne peux pas non plus regrouper par id_mac étant donné qu'il n'est pas présent dans le SELECT.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Merci Cactus, pour ta reponse aussi rapide ....

    effectivement, qd je copie colle, ta requete dans mon Mysql, il me retourne bien une requete....
    Malheuresement, je ne sais pas pourkoi, les information qu'il me renvois sont éroné ...

    exemple de ce que MySQL me renvoit:


    push ok
    2007-03-29 248 0
    2007-04-02 8 0


    le pb est que lorsque j effectue la requete suivante:
    SELECT *
    FROM test
    WHERE dates = '2007-03-29' AND
    STATUS = 'ok'

    MYsql ME RENVOIT 17 occurences ... ce qui est incohérent avec la requete précedente ...

    Dou cela pourais venir:

    ps: j ai pris qu un seul exemple, mais en fait a peu pres toutes les dates sont incohérente ...

    Cordialement damien

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    pour pas qui y est ambuiguité .... :-(

    [__date__] [__push__] [__ok__]
    [__2007-03-29__] [__248__] [__0__]
    [__2007-04-02__] [__8__] [__0__]

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Points : 31
    Points
    31
    Par défaut
    En fait, ton count(STATUS) te renvoit le compte de toutes les lignes et non seulement ceux de la clause du IF.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    ok, mais du coup a koi ca sert d avoir la clause if .... ?

    comment faire pour qu il compte que ceux qui sont ok dans le count "ok" et que les push dans le count "push"?

    cordialement Damien?

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/04/2014, 15h04
  2. Animations Flash dans wxpython - est-ce possible ?
    Par usf70 dans le forum wxPython
    Réponses: 1
    Dernier message: 01/04/2009, 14h21
  3. javascript dans asp est ce possible?
    Par franfr57 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/04/2007, 18h02
  4. requete dans fonction est ce possible
    Par maxeur dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 26/01/2007, 11h21
  5. button dans frameborder.. est ce possible ?
    Par 205 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 02/06/2006, 13h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo