如何在MySQL中执行以下伪代码:
if (a IS NOT NULL)
{
GROUP BY (id)
num = COUNT(*)
} else {
num = 0
}
答案 0 :(得分:1)
请注意确定您要做的事情.....
如果要计算非空值,请检查those examples,它看起来像这样
COUNT(NULLIF(a, ''))
如果您需要更完整的计数,请考虑使用Case
CASE
WHEN a = 'something' COUNT(1)
ELSE NULL
修改强>
如果要调用某些查询,请依赖某些值,请考虑使用存储过程/函数
答案 1 :(得分:0)
这可能是您正在寻找的代码:
select num := count(distinct id)
from t;
如果没有行,这会将num
设置为0
。
如果您真的想要与NULL
进行比较:
select num := (case when a is not null then count(distinct id) else 0 end)
from t;
请注意,这假设数据库中的a
和num
不是列。