是否可以在单个查询中编写两个具有两个条件的 UPDATE 函数?
Posted
技术标签:
【中文标题】是否可以在单个查询中编写两个具有两个条件的 UPDATE 函数?【英文标题】:Is it possible to write two UPDATE functions with two conditions in a single query? 【发布时间】:2021-04-14 12:44:53 【问题描述】:我想要实现的是一个单个查询来更新这两个值。 如果可能的话。
我有一个名为 employee 的表,其中有 3 列 salary ,城市和员工
我已经完成了需要做的事情,
我需要做的是:
城市 1:更新每月收入 城市 2:更新月收入city | salary | employees |
---|---|---|
city1 | 650 | employee1 |
cit2 | 700 | employee2 |
我的两个单独的查询是:
#1
UPDATE employee
SET salary= salary+ (salary* 15 / 100)
WHERE city= 'city1' AND salary<=800;
#2
UPDATE employee
SET salary= salary+ (salary* 18 / 100)
WHERE city= 'city2' AND salary<=800;;
【问题讨论】:
【参考方案1】:您可以使用case
表达式:
UPDATE employee
SET salary = salary * (1 + CASE WHEN city = 'city1' THEN 15 ELSE 18 END) / 100
WHERE city IN ('city1', 'city2') AND salary <= 800;
【讨论】:
以上是关于是否可以在单个查询中编写两个具有两个条件的 UPDATE 函数?的主要内容,如果未能解决你的问题,请参考以下文章
在具有分页的单个模型查询代码点火器中获取具有多个条件的多个连接结果
如何为两个查询条件执行单个 Prepared Statement
如何在 DynamoDB 中的单个属性上查询(getItems)两个条件(不存在 + 某个值)?