MySQL 如何在 where 子句的 AND 运算符中使用 and OR?
MySQL How to use and OR inside an AND operator for a where clause?
我试图在我的 WHERE 子句中使用 AND 和 OR,但我没有得到预期的结果。这是我的查询:
select *
from Pitches
where BatterID = @playerID
and YEAR(GameDate) in (2019)
and (BattedBallID is not null or BattedBallID <> 0);
问题是我得到的 BattedBallID 在行中为 0,但其中 none 为空。我想要它,所以我的结果中的 BattedBallID 不为 0 且不为空;
I want it so my results have BattedBallID's that aren't 0 and aren't null;
你想要:
and BattedBallID is not null and BattedBallID <> 0;
而不是:
and (BattedBallID is not null or BattedBallID <> 0);
您的原始表达式实际上总是计算为真,因为两个条件不能同时为假:如果某物是 null
,则它不等于 0
,如果某物等于0
,则不是null
.
我试图在我的 WHERE 子句中使用 AND 和 OR,但我没有得到预期的结果。这是我的查询:
select *
from Pitches
where BatterID = @playerID
and YEAR(GameDate) in (2019)
and (BattedBallID is not null or BattedBallID <> 0);
问题是我得到的 BattedBallID 在行中为 0,但其中 none 为空。我想要它,所以我的结果中的 BattedBallID 不为 0 且不为空;
I want it so my results have BattedBallID's that aren't 0 and aren't null;
你想要:
and BattedBallID is not null and BattedBallID <> 0;
而不是:
and (BattedBallID is not null or BattedBallID <> 0);
您的原始表达式实际上总是计算为真,因为两个条件不能同时为假:如果某物是 null
,则它不等于 0
,如果某物等于0
,则不是null
.