string test = "SELECT count(*) FROM table where email=@email AND active=@active";
您好,是否可以使用C#检查两个条件是否为真,或者只有其中一个条件为真?
int count = testCMD.ExecuteNonQuery();
我尝试过使用上面的代码,但我不确定我是否理解它是如何工作的......只有在两个条件都成立的情况下,才算数为1?
答案 0 :(得分:2)
Count将返回两个条件都为真的结果数。如果你想检查一个或另一个,那么使用OR代替AND。
答案 1 :(得分:2)
只有在两个条件都为真的情况下,才会计为1?
是即可。您在查询中使用AND
运算符。
是否可以使用C#检查两个条件是否为真或 如果只有其中一个是真的吗?
使用上述查询,否。你不能。您需要为每个参数创建两个不同的查询,或者使用OR
运算符代替AND
来查看其中任何一个条件是否为真。但是OR
你无法确定哪一个是真的。
答案 2 :(得分:1)
尝试:
string test = "
select COUNT(*) from(
select case when (SELECT count(*) FROM table where email=@email AND active=@active)>0 then 1 else null end Num
union all
select case when (SELECT count(*) FROM table where email=@email OR active=@active)>0 then 1 else null end Num
)x where Num is not null"
如果两个条件都为真,则返回2,如果其中任何一个为真,则返回1,如果两个都为假,则返回0。
并使用ExecuteScalar()
代替ExecuteNonQuery()
(返回受影响的行数)。
i.e. int count = (Int32)testCMD.ExecuteScalar();