MySQL if语句(带方法调用)?

时间:2014-01-26 18:17:14

标签: mysql sql database

如何在MySQL中执行以下伪代码:

if (a IS NOT NULL)
{
    GROUP BY (id)
    num = COUNT(*)
} else {
    num = 0
}

2 个答案:

答案 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;

请注意,这假设数据库中的anum 不是列。