2017-02-28 41 views
0

我有一個表A,其中包含幾個包含條目的列。第1欄是表格中唯一的廣告系列名稱。現在我想在另一個表格(表格B)中存在廣告系列名稱時更改另一列中字符串中最後兩個字母(如第2列)(如果廣告系列名稱不在表格B中,則不會發生任何事情) 。表B中第2列(1也是活動名稱)中的「新」兩個最後一個字母是字符串的一部分。 - >我該怎麼做?如果在另一個表中存在entrie,則更改列中字符串中的最後兩個字母

Here's一個例子:

例如,如果表A中包含:

|col1       ||col2   | 
+--------------------------------+---------------+------ 
|20161512_NL_Luxus_1_DE   ||NewsletterDE | 
|20161217_LC_YoBirthdayNo_A_CH ||LifecyclemailUK| 
|20161512_NL_Luxus_1_DE   ||BKMailCH  | 
|20161512_NL_SDT_4_DE   ||LifecyclemailDE| 
|20170117_SV_YoBirthdayYes_A_DE ||BKMailDE  | 
|20161512_NL_SDT_4_DE   ||NewsletterFR |  

,表B包含:

|col1       ||col2   | 
+--------------------------------+---------------+------ 
|20161217_LC_YoBirthdayNo_A_CH ||LifecyclemailCH| 
|20161512_NL_SDT_4_DE   ||NewsletterDE | 

我想要一個查詢,將改變一個表到:

|col1       ||col2   | 
+--------------------------------+---------------+------ 
|20161512_NL_Luxus_1_DE   ||NewsletterDE | 
|20161217_LC_YoBirthdayNo_A_CH ||LifecyclemailCH| 
|20161512_NL_Luxus_1_DE   ||BKMailCH  | 
|20161512_NL_SDT_4_DE   ||LifecyclemailDE| 
|20170117_SV_YoBirthdayYes_A_DE ||BKMailDE  | 
|20161512_NL_SDT_4_DE   ||NewsletterDE |  

這是我走到這一步:

UPDATE table A INNER JOIN table B ON A.col1 = B.col1 SET A.col2 = CONCAT(SUBSTRING(A.col2), RIGHT(B.col2,2)); 

- >但是提前,這是不能正常工作....

謝謝!

回答

1

我認爲這會做:

update tablea a 
join tableb b on a.col1 = b.col1 
set a.col2 = concat(
       susbtr(a.col2, 1, length(a.col2) - 2), 
       right(b.col2, 2) 
      ) 
相關問題