我有一个名为test的表,该表具有两列id并被利用
这里使用的表中包含三个值null,false和true。默认为null
我想用利用率为false的行更新其中利用率为null的行,因此我尝试在Postgres中进行以下查询,但对我而言不起作用。
update test set utilized=false where utilized=null;
答案 0 :(得分:1)
您必须使用IS NULL
来检查是否存在NULL
值:
UPDATE test
SET utilized = false
WHERE utilized IS NULL;
在SQL中,与其他地方(如Java或C#)不同,NULL
是一个特殊值,表示“未知”。因此,使用NULL
运算符将列与=
进行比较也是未知的,因为它可能是正确的,也可能不是正确的。而是使用IS NULL
或IS NOT NULL
直接将列与NULL
进行比较。