Mysql - 如何更新表中的两列,其中每行在连接中重复

时间:2012-10-09 11:40:51

标签: mysql sql-update

我有一张叫做A的桌子 A {
 x int,
 y int,
 z int
}
我有另一张桌子B和
B {
 x int
 代码串,
 值字符串
}。
B->代码可以有2个值:{code1,code2},基于哪个值也不同 现在我需要更新A,其中y = B.value,如果code ='code1',z = B.value,如果code ='code2'。我试图在单个查询中执行此操作 我尝试了通常的更新:
update A,B set A.y=if(B.code='code1',B.value,A.y), A.z=if(B.code='code2',B.value,A,z) where A.X=B.x .
但它只是更新y。我认为这是因为在A中为每一行创建了2行,并且我猜想更新会被覆盖。我的推理是否正确?并且有任何方法可以在更新查询中执行此操作

0 个答案:

没有答案