[MySQL/PHP] Ordre de priorité AND OR
Résolu
Prower91
-
sbo -
sbo -
Bonjour,
J'aimerais intérroger MySql en voulant sélectionner 3 choses :
> Le nom de l'expéditeur (who) OU le nom du destinataire (destinataire) vaut 1 par exemple.
> ET Le n° du sujet dans l'historique (history vaut dans tout LES CAS 2.
Le problème, c'est qu'avec
$sql_historique = "SELECT * FROM `pm` WHERE `destinataire`= '1' OR `who`= '1' AND 'historique' = '2' ORDER BY id ASC LIMIT 1";
Ca ne sélectionne rien du tout de ce que je veux !
Je pense m'être trompé sur la priorité, mais alors comment ?
Merci !
J'aimerais intérroger MySql en voulant sélectionner 3 choses :
> Le nom de l'expéditeur (who) OU le nom du destinataire (destinataire) vaut 1 par exemple.
> ET Le n° du sujet dans l'historique (history vaut dans tout LES CAS 2.
Le problème, c'est qu'avec
$sql_historique = "SELECT * FROM `pm` WHERE `destinataire`= '1' OR `who`= '1' AND 'historique' = '2' ORDER BY id ASC LIMIT 1";
Ca ne sélectionne rien du tout de ce que je veux !
Je pense m'être trompé sur la priorité, mais alors comment ?
Merci !
1 réponse
-
Salut,
$sql_historique = "SELECT * FROM `pm` WHERE `destinataire`= '1' OR `who`= '1' AND 'historique' = '2' ORDER BY id ASC LIMIT 1";
AND a une priorité supérieure à OR. Utilise des paranthéses.$sql_historique = "SELECT * FROM `pm` WHERE (`destinataire`= '1' OR `who`= '1') AND 'historique' = '2' ORDER BY id ASC LIMIT 1";