2016-09-01 106 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 
相關問題