我有一个表A,其中包含几个带条目的列。第1列是广告系列名称,在表格中是唯一的。现在,当广告系列名称存在于另一个表格中时,我想更改另一列中字符串中的最后两个字母(比如第2列)(表B)(如果广告系列名称不在表格B中,则不会发生任何事情) 。 “新”两个最后一个字母是表2中第2列(1也是广告系列名称)中字符串的一部分。 - >我怎么能这样做?
以下是一个例子:
例如,如果表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 |
我想要一个将表A更改为:
的查询|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));
- >但这不能正常工作......
提前致谢!
答案 0 :(得分: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)
)