Bool的MySQL查询问题
我对以下MySQL查询有问题:Bool的MySQL查询问题,mysql,Mysql,我对以下MySQL查询有问题: SELECT * FROM TPDSessions WHERE TPDS_Morning = 0 AND TPDD_Id = 1 AND TPDS_Chair1_idPerson = 16785 OR TPDS_Chair2_idPerson = 16785 返回的行的TPDS_Morning值为1,我不知道为什么。这是表结构: CREATE TABLE `TPDSessions` ( `TPDS_Id` int(11) NOT NULL auto_in
SELECT * FROM TPDSessions WHERE TPDS_Morning = 0 AND TPDD_Id = 1 AND TPDS_Chair1_idPerson = 16785 OR TPDS_Chair2_idPerson = 16785
返回的行的TPDS_Morning值为1,我不知道为什么。这是表结构:
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 ;
如果有人能解释如何调整我的查询以不返回该结果…您可能缺少OR语句的一些括号 可能是
SELECT *
FROM TPDSessions
WHERE (TPDS_Morning = 0
AND TPDD_Id = 1
AND TPDS_Chair1_idPerson = 16785)
OR TPDS_Chair2_idPerson = 16785
SELECT *
FROM TPDSessions
WHERE TPDS_Morning = 0
AND TPDD_Id = 1
AND (TPDS_Chair1_idPerson = 16785
OR TPDS_Chair2_idPerson = 16785)
我认为第二个更可能是您所追求的。您可能缺少OR语句的一些括号 可能是
SELECT *
FROM TPDSessions
WHERE (TPDS_Morning = 0
AND TPDD_Id = 1
AND TPDS_Chair1_idPerson = 16785)
OR TPDS_Chair2_idPerson = 16785
SELECT *
FROM TPDSessions
WHERE TPDS_Morning = 0
AND TPDD_Id = 1
AND (TPDS_Chair1_idPerson = 16785
OR TPDS_Chair2_idPerson = 16785)
我认为第二个更可能是你想要的。因为你最后有一个OR。可能会有一个与Chair2_idPerson=16875和
TDPS_晨=1。在适当的地方用括号将语句分组。因为在末尾有一个OR。可能会有一个与Chair2_idPerson=16875和
TDPS_晨=1。在适当的地方用括号将陈述分组。是的,考虑到这个问题,第二个很可能是……是的,就是这样。谢谢你澄清这一点,我以前也有过这个问题,但这次显然没有注意到。谢谢是的,考虑到这个问题,第二个很可能是……是的,就是这样。谢谢你澄清这一点,我以前也有过这个问题,但这次显然没有注意到。谢谢神奇的词语是“优先”。神奇的词语是“优先”。