SQL 如何用update同时更新多个数据?

+------+------+
| name | zam |
+------+------+
| tom | 0 |
| jack | 0 |
| lucy | 0 |
| mary | 0 |
+------+------+
如何通过update一次性把里面的tom,jack,lucy,mary的zam改为1,也就是
+------+------+
| name | zam |
+------+------+
| tom | 1 |
| jack | 1 |
| lucy | 1 |
| mary | 1 |
+------+------+

如果是把表所有0都改成1,语句为:update  表名 set zam =1 

示例:update [Test].[dbo].[Table_Test] set zam=1 

执行前结果为:

执行后结果为:

如果只是部分改为1,则需要加入判断条件where,语句为:update  表名 set zam =1  where ....

示例:update [Test].[dbo].[Table_Test] set zam=1
where name ='tom' or name='jack' or name ='lucy'

执行后结果:

扩展资料:

UPDATE概述

用途:更新表中原有数据

单独使用,使用where匹配字段

set后面,更新字段值,既可以一次一项,也可以一次多项

例如1,

Update table_name Set column_name = new_value Where column_name = some_value

参考资料:

百度百科:update

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-15

 如果是整表修改的话,不加任何条件:

update  tabname set zam = 1;

如果限制的话:

update  tabname set zam = 1 where name in ('tom','jack','lucy','mary');

追问

大概就是
update tabname set zam = 1 where name = 'tom'
update tabname set zam = 2 where name = 'jack'
update tabname set zam =3 where name = 'lucy'
update tabname set zam =4 where name = 'mary'
压缩为一句话怎么做

追答

还真做不了,只能是你那样的写法;

或者用程序段(循环)来实现(具体看你的数据库)

追问

好吧,谢谢

追答

不客气。

本回答被提问者采纳
第2个回答  2014-09-17
UPDATE table_name SET zam = 1 WHERE NAME IN('tom','jack','lucy','mary')
是不是你想要的追问

呃,我也没表达清楚自己的意思,其实我是想四次update压缩为一次,不知道怎么做

第3个回答  2014-09-17
update table set zam=1 where name in ('tom','jack','luck','mary')
第4个回答  2017-11-15
UPDATE tabname 
    SET zam = CASE name
     WHEN ‘tom’ THEN 1 
     WHEN ‘jack’THEN 2
     WHEN ‘lucy’THEN 3
     WHEN ‘mary’THEN 4
    END
 WHERE name IN('tom','jack','lucy','mary')

相似回答