postgresql - Postgres:如果列包含null,则使用false更新布尔列
问题描述
我有一个名为 test 的现有表,其中包含两列 id 并已使用
这里使用的在我的表中包含三个值 null、false 和 true。这里 null 是使用的默认值
我想用 used false 更新行,其中 used 为 null,所以我在 Postgres 中尝试了下面的查询,但它对我不起作用。
update test set utilized=false where utilized=null;
解决方案
您必须使用IS NULL
来检查值是否存在NULL
:
UPDATE test
SET utilized = false
WHERE utilized IS NULL;
在 SQL 中,与 Java 或 C# 等其他地方不同,NULL
它是一个特殊的值,意思是“未知”。因此,将列与NULL
使用=
运算符进行比较也是未知的,因为它可能正确也可能不正确。相反,使用IS NULL
orIS NOT NULL
直接将列与NULL
.
推荐阅读
- power-automate - Power Automate - 到共享点列表的 Postgrey 流在星期四不起作用
- android - 奇怪的 Shell 页面和 ListView 导航问题 [Xamarin Forms]
- python - 当我有多个参数时,为什么 Optuna CSV 文件每个参数只显示 1 个项目?
- r - geom_col over year and groups:有什么方法可以避免在酒吧分界?
- java - 允许通知 Android webview
- python - 尝试确定代码中是否存在 S3 路径
- python - Python HTTP Server - TypeError:需要一个类似字节的对象,而不是'str'
- mongodb - 单个查询有条件的不同操作 - MongoDb
- sql - SQL 查找每个帐户的下一个唯一日期和子帐户
- r - 在R中获取直方图的bin宽度