2016-09-01 107 views
0

我有两个数据集,A和B.在这两个数据集中,我都有一个名为“Campaign”的列,但名称不同。例如,在A中,广告系列被称为“CDE-332 Blabla”,而在B中,同一广告系列被称为“FGI-332 Bleh Bleh”。另一个活动可能是A中的'CDE-345 Blabla'和B中的'FGI-345 Bleh Bleh'。基本上,每个数据集中有3个数字连接行。mysql:用另一个表中的列替换列值

我的问题是:是否有一种方法用mysql替换A中在B中看到的具有匹配3位数的活动?谢谢!

+1

是3个数字始终在列值相同的地方? – Barmar

+0

不幸的是,他们不是。 –

+0

好的,我已经改变了我的答案,使用'LOCATE'找到3位数之前的'-'。 – Barmar

回答

1

加入使用SUBSTR()连接条件的两个表,然后更新表A.

UPDATE TableA AS a 
JOIN TableB AS b 
ON SUBSTR(a.campaign, LOCATE(a.campaign, '-')+1, 3) = SUBSTR(b.campaign, LOCATE(b.campaign, '-')+1, 3) 
SET a.campaign = b.campaign 
相关问题