Postgres:如果列包含空值,则将布尔值列更新为false

时间:2019-03-03 13:45:12

标签: postgresql

我有一个名为test的表,该表具有两列id并被利用

这里使用的表中包含三个值null,false和true。默认为null

我想用利用率为false的行更新其中利用率为null的行,因此我尝试在Postgres中进行以下查询,但对我而言不起作用。

  update test set utilized=false where utilized=null;

1 个答案:

答案 0 :(得分:1)

您必须使用IS NULL来检查是否存在NULL值:

UPDATE test
SET utilized = false
WHERE utilized IS NULL;

在SQL中,与其他地方(如Java或C#)不同,NULL是一个特殊值,表示“未知”。因此,使用NULL运算符将列与=进行比较也是未知的,因为它可能是正确的,也可能不是正确的。而是使用IS NULLIS NOT NULL直接将列与NULL进行比较。