-1

我正在维护一个项目。有一个表叫'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 的行。

两个sql都达不到我的预期。

谁有这个想法?谢谢。

4

1 回答 1

4

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

UPDATE timeblock SET break_minutes=0 WHERE break_minutes IS NULL
于 2012-05-18T04:43:24.030 回答