sql - 当我们需要检查条件时,如何编写 UPDATE 语句?
问题描述
我想在 Oracle SQL 中编写一条更新语句,仅当同一个表中的另一个属性为真时才将几个属性设置为真。
name | value
----------------------
property1 False
property2 False
property3 True
UPDATE table_xyz
SET value = 'True'
WHERE name in ('property1', 'property2')
仅当 property3 = 'True';
解决方案
您可以尝试如下使用EXISTS
.
UPDATE table_xyz
SET value = 'True'
WHERE name in ('property1', 'property2')
AND EXISTS
(
SELECT 1 FROM table_xyz WHERE name = 'property3' AND value = 'True'
)
推荐阅读
- javascript - 尝试删除约束并更改列时出现 Knex 迁移错误
- kubernetes - 正确的 Kubernetes 迁移 YAML 格式
- android - 从 EditText 获取 Int 值的标准方法是什么?(Android Kotlin/Java)
- ios - 我可以在 iOS 上模拟 BLE 设备并设置其名称吗?(反应原生)
- php - 如何从包含的文件中将 php 变量插入另一个变量
- python - 如何将列表传递给数据框?
- php - Laravel Sail 数据库和用户未创建
- c - 为什么在 Eclipse IDE 中成功构建项目后没有创建可执行文件:C 程序?
- python - 使用过滤器计算第二个数据帧中值的出现次数
- discord.js - 是否有另一种创建角色的方法,而不是手动获取公会 ID 来创建角色?