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

Hem*_*ari 9 postgresql boolean sql-null

我有一个名为 test 的现有表,其中有两列 id 并已使用

\n\n

这里使用的包含我的表中的三个值 null、false 和 true。这里null是默认使用的

\n\n

我想更新使用 false 的行,其中使用的是 null,所以我在 Postgres 中尝试了下面的查询,但它对我不起作用。

\n\n
  update test set utilized=false where utilized=null;\n
Run Code Online (Sandbox Code Playgroud)\n

Tim*_*sen 19

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

UPDATE test
SET utilized = false
WHERE utilized IS NULL;
Run Code Online (Sandbox Code Playgroud)

在 SQL 中,与 Java 或 C# 等其他地方不同,NULL它是一个特殊值,含义类似于“未知”。因此,比较列与NULL使用=运算符也是未知的,因为它可能是真的,也可能不是真的。相反,使用IS NULLIS NOT NULL直接将列与 进行比较NULL