九卅论坛 bs777.net:SQL 语法,如何一次更新多条数据?

来源:百度文库 编辑:高校问答 时间:2024/05/04 13:04:21
例如一表格 myTable:
----------------------------
id | name | age
----------------------------
1 | 小红 | 20
----------------------------
4 | 小强 | 28
----------------------------
5 | 小明 | 35
----------------------------
6 | 小蓝 | 10
----------------------------
11 | 小白 | 59
----------------------------
13 | 小黑 | 20
----------------------------

我想把:
小红的年龄加1岁
小强的年龄加3岁
小白的年龄减2岁
小黑的年龄加10岁

我是这样写的:

UPDATE myTable SET age=age+1 WHERE name='小红'
UPDATE myTable SET age=age+3 WHERE name='小强'
UPDATE myTable SET age=age-2 WHERE name='小白'
UPDATE myTable SET age=age+10 WHERE name='小黑'

写了四条,然后分别执行一次。

请问,有什么方法可以用一条语句就完成上述操作呢?也就是说只执行一次SQL就完成上面功能,有简便点的方法吗?

谢谢.!!

UPDATE myTable SET age=age+(case name when '小红' then 1 when '小强' then 3 when '小白' then -2 when '小黑' then 10 end)

如果你的1,3,2,10和后面的 名字都是随机的,那就没办法。