J'ai un problème avec la requête MySQL suivante:problème de requêtes MySQL avec Bool
SELECT * FROM TPDSessions WHERE TPDS_Morning = 0 AND TPDD_Id = 1 AND TPDS_Chair1_idPerson = 16785 OR TPDS_Chair2_idPerson = 16785
La ligne retournée a TPDS_Morning d'une valeur de 1, et je ne comprends pas pourquoi. Ceci est la structure de la table:
CREATE TABLE `TPDSessions` (
`TPDS_Id` int(11) NOT NULL auto_increment,
`TPDR_Id` int(32) NOT NULL,
`TPDD_Id` int(32) NOT NULL,
`TPDS_Morning` tinyint(1) NOT NULL,
`TPDS_Name` varchar(200) NOT NULL,
`TPDS_Chair1_idPerson` int(11) NOT NULL,
`TPDS_Chair2_idPerson` int(11) NOT NULL,
PRIMARY KEY (`TPDS_Id`),
KEY `chair1_idPerson` (`TPDS_Chair1_idPerson`,`TPDS_Chair2_idPerson`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
Si quelqu'un peut expliquer comment ajuster ma requête pour ne pas retourner ce résultat ...
Le mot magique est «précédence». http://dev.mysql.com/doc/refman/5.0/en/operator-precedence.html – bobince