得到一个小问题,我无法绕过头。
我有2个表,1个表有一个Youtube链接我需要附加到表2中的另一列。但是并不是每个记录都有一个Youtube链接,这意味着我需要检查两个表中的名称是否是相同(WHERE name1 = name2?)但是如何将文本附加到表2中已有的文本?像这样的东西?
UPDATE table2 SET text2 = (text2 + '/n' + table1.text1) WHERE name1 = name2?
如果有人可以帮助我,那就太棒了!
编辑:
所以我在查询中摸索了一下:
SELECT
'Kleding'.'Naam',
'jos_virtuemart_products_nl_nl'.'product_name',
CONCAT_WS('/n', 'jos_virtuemart_products_nl_nl'.'product_desc', 'Kleding'.'Youtube_link')
FROM
'jos_virtuemart_products_nl_nl' as 't2'
INNER JOIN 'Kleding' as 't1'
ON 't2'.'product_name' = 't1'.'Naam';
但是由于一些奇怪的原因,这个查询是不正确的。我找不到为什么不正确。
答案 0 :(得分:0)
UPDATE
table2 as t2 INNER JOIN table1 as t1 ON t2.name = t1.name
SET
t2.text2 = CONCAT_WS('/n', t2.text2, t1.text1);
P.S。:也许'/n'
你的意思是'\n'
?
P.P.S:在进行任何重大数据更改操作之前,我建议你to backup数据库。
<强> UPDv1:强>
使用SELECT
测试您的最终结果集:
SELECT
`t1`.`name` as `t1-name`,
`t2`.`name` as `t2-name`,
CONCAT_WS('/n', `t2`.`text2`, `t1`.`text1`) as `changes`
-- ^ here you will see what comes up
FROM
`table2` as `t2` INNER JOIN `table1` as `t1` ON `t2`.`name` = `t1`.`name`
-- WHERE possibly more conditions to meet your requirements
如果您使用其他WHERE
条件管理te获取正确的结果集,请将它们移至UPDATE
语句。