PaliSkill
SQL débutant

Leçon 5 / 9 — Chapitre 2: WHERE : comparaisons et logique

Priorité de AND sur OR et parenthèses

Quand AND et OR sont combinés dans un même WHERE, AND est évalué avant OR — exactement comme la multiplication est évaluée avant l'addition en arithmétique. Sans parenthèses, cet ordre peut produire un résultat inattendu.

SELECT nom FROM produits
WHERE categorie = 'hygiene' OR categorie = 'boisson' AND prix > 500;

Ici, AND étant évalué en premier, cette requête équivaut à : categorie = 'hygiene' OR (categorie = 'boisson' AND prix > 500). Elle affiche donc tous les produits hygiene (peu importe leur prix), plus les produits boisson uniquement si leur prix dépasse 500 $.

Pour forcer un regroupement différent, des parenthèses explicites sont nécessaires :

SELECT nom FROM produits
WHERE (categorie = 'hygiene' OR categorie = 'boisson') AND prix > 500;

Cette version force le OR à être évalué en premier : elle affiche les produits qui sont (hygiene ou boisson) et, en plus, dont le prix dépasse 500 $. Seul Jus (boisson, 600 $) vérifie cette version ; Dentifrice (hygiene, 500 $ exactement) n'est plus inclus car son prix n'est pas strictement supérieur à 500 $.

Bonne pratique à retenir : dès qu'un WHERE mélange AND et OR, ajouter des parenthèses explicites, même quand elles ne changent pas le résultat — la requête reste sans ambiguïté à la lecture, pour soi-même comme pour quiconque la relira plus tard.

À retenir :

  • Sans parenthèses, AND est évalué avant OR dans une même condition WHERE.
  • Des parenthèses explicites permettent de forcer un regroupement différent, et clarifient toujours la lecture.

À vous de jouer : réécrivez la deuxième requête de cette leçon en changeant le regroupement des parenthèses, et comparez le résultat obtenu.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 84 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès