mysql - 将文本从一个表附加到另一表

标签 mysql sql

有一个小问题,我无法解决..

我有 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';

但是由于某些奇怪的原因,这个查询是不正确的。我找不到为什么它不正确。

最佳答案

您可以use INNER JOIN in UPDATE :

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 条件获得正确的结果集,请将它们移至 UPDATE 语句。

关于mysql - 将文本从一个表附加到另一表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25563472/

相关文章:

sql - 优化使用多个 SELECT 语句并返回一个结果集的 SQL 查询

sql - 如何在mysql查询中获取一个变量中的多列

php - 插入表并返回分配的自动增量 ID

php - 过滤掉数组中的重复值

mysql - 如何从MySQL中的每个组中选择随机行?

mysql - 查询无法正常工作

mysql - 显式日期/日期时间转换

SQL Server管理工作室: prompt for user input

MySQL_如何对另一列上具有相同值的每两列中的值求和?

php - 通过表单 Cookie 和 GET