Mysql 如何通过一个查询更新两个不同的行?
这是我的桌子:Mysql 如何通过一个查询更新两个不同的行?,mysql,sql,logical-operators,Mysql,Sql,Logical Operators,这是我的桌子: // mytable +----+------+ | id | num | +----+------+ | 1 | 400 | | 2 | 200 | | 3 | 200 | | 4 | 250 | +----+------+ 以下是预期结果: +----+------+ | id | num | +----+------+ | 1 | 390 | | 2 | 200 | | 3 | 220 | | 4 | 250 | +----+----
// mytable
+----+------+
| id | num |
+----+------+
| 1 | 400 |
| 2 | 200 |
| 3 | 200 |
| 4 | 250 |
+----+------+
以下是预期结果:
+----+------+
| id | num |
+----+------+
| 1 | 390 |
| 2 | 200 |
| 3 | 220 |
| 4 | 250 |
+----+------+
如你们所见,我减去了10,其中id=1,我加了20,其中id=3
我的问题是:
UPDATE mytable SET num = num +/- (CASE WHEN num = 1 THEN 10 WHEN num = 3 THEN 20 END)
WHERE id IN (1,3)
如何管理+或-?在case语句中使用负数:
UPDATE mytable
SET num = num + CASE WHEN id = 1 THEN -10 ELSE 20 END
WHERE id IN (1,3)
在case语句中使用负数即可:
UPDATE mytable
SET num = num + CASE WHEN id = 1 THEN -10 ELSE 20 END
WHERE id IN (1,3)