计算每行mysql的Null变量数

时间:2014-07-11 14:52:03

标签: mysql sql variables null

我们在使用innoDB的Mysql中有以下表格:

id   Var1   Var2  Var 3     
1    NULL    1     2   
2    2    NULL    NULL  
3    4       2    NULL 

我们假装使用每行NULL变量的数量生成Var4:

id Var4  
1    1  
2    2  
3    1 

我尝试失败了:

update db.table 
set var4 = ISNULL(var1) + ISNULL(var2) + ISNULL(var3);

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

这是一种方式:

select id, ((var1 is null) + (var2 is null) + (var3 is null)) as var4
from table t;

MySQL将布尔值视为整数,其中true为1,false为0。您可以将它们添加起来以获得总数。

作为更新:

update table t
    set var4 = ((var1 is null) + (var2 is null) + (var3 is null));

作为一个说明,MySQL并不支持ISNULL()。这更像是一个SQL Server功能。但它无论如何都不是ANSI标准,因此通常最好使用coalesce()