繁体   English   中英

如果值与同一表中的不同列匹配,则更新列

[英]update column if value matches a different column within the same table

我有这张桌子:

在此处输入图片说明

而我想更新new_parentIDnew_campaignID场如果old_campaignID = old_parentID

这是一个例子

col A | col B | col C | col D | col E | col F |
1     | 1     | 4     | a     | 7     | NULL  |
2     | 2     | 5     | b     | 2     | NULL  |
3     | 3     | 6     | c     | 8     | NULL  |

因此,如果col b = col EI想要在col e的同一行上填充col f

结果

col A | col B | col C | col D | col E | col F |
2     | 2     | 5     | b     | 2     | 5     |

我试过了:

update test1 
set new_campaignID = new_parentID 
where old_campaignID = old_ParentID; 

但这没用

您需要join 我认为您想要的查询是:

update test1 t1 join
       test1 tt1
       on t.old_campaignId = tt1.old_parentId
    set t1.new_campaignID = tt1.new_parentID ;

这是您的简单代码

CREATE TABLE T1
(
   colA CHAR(1),
   colB CHAR(1),
   colC CHAR(1),
   colD CHAR(1),
   colE CHAR(1),
   colF CHAR(1)
);

/*col A | col B | col C | col D | col E | col F |
1     | 1     | 4     | a     | 7     | NULL  |
2     | 2     | 5     | b     | 2     | NULL  |
3     | 3     | 6     | c     | 8     | NULL  |*/

INSERT INTO T1 VALUES
('1','1','4','a','7',null),
('2','2','5','b','2',null),
('3','3','6','c','8',null);

您可以使用SET填充列

UPDATE T1
SET colF = colE
WHERE colB = colE;

SQLFiddle

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM