Sql 将多个OR运算符与AND运算符组合
我在编写一个包含多个OR运算符和and运算符的查询时遇到了一些困难 目前,我的查询如下所示:Sql 将多个OR运算符与AND运算符组合,sql,mysqli,operators,Sql,Mysqli,Operators,我在编写一个包含多个OR运算符和and运算符的查询时遇到了一些困难 目前,我的查询如下所示: SELECT * FROM `contentvalues` WHERE (`contentid` = 16 OR `contentid` = 18) AND `value` <= 180; SELECT*FROM`contentvalues`WHERE(`contentid`=16或`contentid`=18)和`value`将同一变量的或逻辑放入SQL子句中 像这样试试 SELECT * F
SELECT * FROM `contentvalues` WHERE (`contentid` = 16 OR `contentid` = 18) AND `value` <= 180;
SELECT*FROM`contentvalues`WHERE(`contentid`=16或`contentid`=18)和`value`将同一变量的或逻辑放入SQL子句中
像这样试试
SELECT * FROM `contentvalues` WHERE contentid in (16,18) AND value <= 180;
SELECT*FROM`contentvalues`,其中contentid在(16,18)和value中,您得到的结果是正确的。我猜您对您的查询实际上是如何执行的感到困惑。所以你的问题是:
SELECT * FROM `contentvalues` WHERE (`contentid` = 16 OR `contentid` = 18) AND `value` <= 180;
从`contentvalues`中选择*其中(`contentid`=16或`contentid`=18)和`value`如果列中的值是字符串,则可以使用
从contentvalues
中选择*其中contentid位于(16,18)和
转换(值,有符号整数)您描述的问题不是。WHERE
子句的谓词似乎完全符合您的要求。我认为您输入了一个错误:预期结果应该是18250
。我想你是说18150
@EdwinStoteler是的,thanks@GiorgosBetsos是的,我刚刚意识到我的问题写得很糟糕。我试图删除,但无法删除,因为它有答案。实际上,您可以删除它。我认为只有当答案被接受时,删除才被禁用。这相当于OP的WHERE
子句。它不应该产生不同的结果。
SELECT * FROM `contentvalues` WHERE (`contentid` = 16 OR `contentid` = 18) AND `value` <= 180;
`contentid` = 16 AND `value` <= 180 //gives 16, 110
OR `contentid` = 18 AND `value` <= 180 //gives 18, 150