代码之家  ›  专栏  ›  技术社区  ›  Hemadri Dasari

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

  •  0
  • Hemadri Dasari  · 技术社区  · 5 年前

    我有一个名为test的现有表,它有两个列id和id

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

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

      update test set utilized=false where utilized=null;
    
    1 回复  |  直到 5 年前
        1
  •  6
  •   Tim Biegeleisen    5 年前

    你必须使用 IS NULL 检查是否存在 NULL 价值:

    UPDATE test
    SET utilized = false
    WHERE utilized IS NULL;
    

    在SQL中,与Java或C#等其他地方不同, 无效的 是一个特殊的值,意思是“未知”因此,将列与 无效的 使用 = 运算符也是未知的,因为它可能是真的,也可能不是真的。相反,使用 是空的 IS NOT NULL 直接将列与 无效的