Mysql 选择计数(如果(exp,t,f))作为数字

Mysql 选择计数(如果(exp,t,f))作为数字,mysql,Mysql,我有两张桌子 tb1:id_q(pk),q1,q2,q3,q4,q5,q6,q7,q8,q9,q10 tb2:id(pk)、id_q(fk)、ip、ans 还有我的问题 select count(if(q1==-1 and q2==-1 and q3==-1 and q4==-1 and q5==-1 and q6==-1 and q7==-1 and q8==-1 and q9==-1 and q10==-1)) as number from tb1 where id=number 及 ??

我有两张桌子

tb1:
id_q(pk),q1,q2,q3,q4,q5,q6,q7,q8,q9,q10

tb2:
id(pk)、id_q(fk)、ip、ans

还有我的问题

select count(if(q1==-1 and q2==-1 and q3==-1 and q4==-1 and q5==-1 and q6==-1 and q7==-1 and q8==-1 and
q9==-1 and q10==-1)) as number from tb1 where id=number

??? 我想在一个查询中进行两个查询?

对于SQL Server,Count(列名称)将计算不为空的行总数;因此,您可以使用Case语句计算第一个表达式,该语句返回1表示True,返回Null表示False:

select count(Case When (q1=-1 and q2=-1 and q3=-1 and q4=-1 and q5=-1 and q6=-1 and q7=-1 and q8=-1 and q9=-1 and q10=-1) Then 1 Else Null End) as number from tb1
第二种可能是将SUM()函数与返回1或0的Case语句一起使用:

select Sum(Case When (q1=-1 and q2=-1 and q3=-1 and q4=-1 and q5=-1 and q6=-1 and q7=-1 and q8=-1 and q9=-1 and q10=-1) Then 1 Else 0 End) as number from tb1
您可以对第二个查询执行相同的操作。(当然,如果语法不同,您必须使用正确的指令在MySQL上执行Case语句。)


我忘了提到您需要在案例陈述中使用适当的相等运算符
=
,而不是
=

我不知道您的问题/问题/疑问是什么。请再详细一点。我有两个表和两个查询??答案是肯定的!!请在这里投票
select Sum(Case When (q1=-1 and q2=-1 and q3=-1 and q4=-1 and q5=-1 and q6=-1 and q7=-1 and q8=-1 and q9=-1 and q10=-1) Then 1 Else 0 End) as number from tb1