同一个表,使用不同记录的一列更新另一列

图片描述
在同一张表中,我想用A字段和B字段相等,C字段等于0的记录的D字段去更新C字段等于1的D字段,即把D字段为空的字段分别更新成5和6。sql该怎么写?

阅读 6.3k
3 个回答

完全没有看懂,能举个例子你希望将哪个字段更新成什么具体的值,原因是什么吗?或者有什么具体的场景可以说一下,或者有更好的解决方案

UPDATE test t1,
(SELECT * FROM test WHERE C = 0) t2
SET t1.D = t2.D
WHERE t1.C = 1
AND t1.A = t2.A
AND t1.B = t2.B;

update yourTable t set t.D = (select t1.D from yourTable t1 where t1.C = '0' and t1.A = t.A and t1.B = t.B) where t.D is null;

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题