sql中的update如何根据不同条件修改多条数据的同一列

例如:
update abc set abc.a=1 where a.id=1;
update abc set abc.a=1 where a.id=2;
这样的update可以合并吗?
最新回答
凭栏听雨

2025-06-27 12:34:33

如果只需要更新一个字段,MYSQL和ORACLE语法是一样的,在 set 后面跟一个子查询即可。

现在需要同时更新2个字段,最不经过大脑思考的方法就是 “为每个 set 后面都跟一个子查询”,但是假如要 set 十个字段或者更多字段,很显然,这样在性能上是很不合适的方法。

同时更新多个字段在MYSQL和ORACLE中的方法是不一样,MYSQL需要连接表,ORACLE使用 set(...) 即可。

扩展资料

sql更新语句中update用法:

语法:

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

更新某一行中的一个列

为 lastname 是 "Wilson" 的人添加 firstname:

UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'

请注意 SQL UPDATE 语句中的 WHERE 子句!

WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE 子句,所有的记录都将被更新!    

我怕冷抱紧我

2025-06-27 00:02:43

可以啊
修改Where条件
update abc set a=1 where id=1 Or id=2
你给的例句有问题啊,表名abc,后面写的是a.id
追问
后面表达错了。应该是abc.id.   用or不是选择执行id=1或者id=2的么?想要=1和=2的都执行。
追答
你想说的是id=1 And id=2吗?
id=1 Or id=2:如果id=1或者id=2中间有一个成立了,那么update语句会将Set a=1。
id=2 And id=2:如果id=1和id=2两个同时成立,update语句会将Set a=1。一个字段在一行中只能有一个值,不可能有两个值的。
酒尽

2025-06-27 07:56:16

UPDATE abc SET abc.a=1 WHERE a.id IN (1,2),字符类型加''号
猫儿少女

2025-06-27 14:49:46

修改学生表中性别列,如果是男,就修改为1,如果是女就修改为0,其他情况为2
请参照如下语句修改执行:
UPDATE student SET sex = (CASE WHEN sex='男' THEN 1 WHEN sex='女' THEN 0 ELSE 2 END) WHERE 1=1