在Database中选择行类型为NULL的行

时间:2012-05-18 04:41:42

标签: mysql sql default-value

我正在维护一个项目。有一个名为'timeblock'的表,它有一个名为'break_minutes'的字段,在旧设计中,'break_minutes'的类型是int,默认值是NULL。

这个设计不适合我的新任务,因为我会使用'break_minutes'来做一些数学函数。像总和。所以我已经将数据库架构和默认值更改为0而不是Null。

所以我必须将'break_minutes'值为NULL的所有数据更改为0。

所以我写了sql:

update timeblock set break_minutes=0 where break_minutes=NULL

,结果为空。

如果我写sql:

update timeblock set break_minutes=0 where break_minutes=NULL

结果仅适用于值为0的行。

两个平方都不能达到我的期望。

任何有这个想法的人?感谢。

1 个答案:

答案 0 :(得分:4)

要检查值是否为 NULL ,请使用特殊比较谓词IS NULL,而不是使用比较运算符。 比较运算符在与 NULL 进行比较时返回unknown

UPDATE timeblock SET break_minutes=0 WHERE break_minutes IS NULL