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 :

priorité des opérateurs AND et OR avec HAVING sans utiliser de parenthèses


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Points : 7
    Points
    7
    Par défaut priorité des opérateurs AND et OR avec HAVING sans utiliser de parenthèses
    Dans un requête utilisant GROUP BY avec un HAVING quelle est la priorité des opérateurs AND et OR si on n'utilise pas de parenthèse pour grouper les ensembles :

    ...HAVING SUM(objet='chapeau')>0 AND SUM(objet='gants')>0 OR SUM(objet='valise')>0

    J'obtiens en résultat :
    [chapeau et gants] [valise]
    ou
    [chapeau et gants] [chapeau et valise]

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Après quelques recherches laborieuses j'ai trouvé ça dans la documentation msdn relative à SQL Server 2005. Est-ce que les priorités pour NOT AND OR sont identiques avec MySQL (en rouge dans l'extrait) ?

    { AND | & } | { AND NOT | &! } | { OR | | }

    Spécifie une opération logique entre deux conditions de recherche de contenu.

    AND | &

    Indique que les deux conditions de recherche contains doivent être satisfaites pour obtenir une correspondance. Le symbole et commercial (&) peut être utilisé à la place du mot clé AND pour représenter l'opérateur AND.

    AND NOT | &!

    Indique que la deuxième condition de recherche ne doit pas être satisfaite pour obtenir une correspondance. Le symbole et commercial suivi d'un point d'exclamation (&!) peut être utilisé à la place du mot clé AND NOT pour représenter l'opérateur AND NOT.

    OR | |

    Indique que l'une des deux conditions de recherche contains doit être satisfaite pour obtenir une correspondance. Le symbole de barre verticale (|) peut être utilisé à la place du mot clé OR pour représenter l'opérateur OR.

    Lorsque <contains_search_condition> comporte des groupes placés entre parenthèses, ces groupes sont évalués en premier. Une fois ces groupes évalués, les règles suivantes sont appliquées lorsque ces opérateurs logiques sont utilisés dans les conditions de recherche de contenu :

    * NOT est appliqué avant AND.
    * NOT peut uniquement être utilisé après AND, comme dans AND NOT. L'opérateur OR NOT n'est pas autorisé. NOT ne peut pas être spécifié avant le premier terme. Par exemple, CONTAINS (mycolumn, 'NOT "phrase_to_search_for" ' ) est incorrect.
    * AND est appliqué avant OR.
    * Les opérateurs booléens de même type (AND, OR) sont associatifs et peuvent donc être utilisés dans un ordre quelconque.
    Donc dans mon exemple, [chapeau et gants] [valise] semble être la bonne réponse, non ?

  3. #3
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Oui, ça a l'air d'être la même chose sous MySQL.

    http://dev.mysql.com/doc/refman/5.0/...recedence.html

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Merci Maximilian, c'est exactement ce que je cherchais
    Pourtant, j'avais bien parcouru la doc MySQL, j'ai du rater ce chapitre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. priorité des opérateurs
    Par new_wave dans le forum Langage
    Réponses: 3
    Dernier message: 02/12/2008, 12h09
  2. Priorité des opérateurs % et ++
    Par G3G3 dans le forum Débuter
    Réponses: 16
    Dernier message: 12/02/2008, 09h40
  3. [OCaml & F#] Priorité des opérateurs
    Par SpiceGuid dans le forum Caml
    Réponses: 7
    Dernier message: 01/01/2008, 15h00
  4. priorité des opérateurs
    Par new_wave dans le forum SQL
    Réponses: 13
    Dernier message: 08/11/2007, 21h44
  5. Priorité des opérateurs
    Par neuromencien dans le forum Langage
    Réponses: 3
    Dernier message: 14/05/2007, 17h06

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