连接两个表列并用结果更新一个

Posted

技术标签:

【中文标题】连接两个表列并用结果更新一个【英文标题】:Concat two table columns and update one with result 【发布时间】:2012-01-13 03:45:17 【问题描述】:

我有一个包含两列的表,我需要将这两列连接起来并用结果更新第一列。 例如假设这是我的表:

+----+-------+-------+
| id | col1  | col2  |
+----+-------+-------+
|  1 | text1 | text2 |
+----+-------+-------+
|  2 | text3 | text4 |
+----+-------+-------+

连接后我的表应该是:

+----+-------------+-------+
| id |    col1     | col2  |
+----+-------------+-------+
|  1 | text1.text2 | text2 |
+----+-------------+-------+
|  2 | text3.text4 | text4 |
+----+-------------+-------+

如何使用 SQL 来做到这一点?

【问题讨论】:

【参考方案1】:

试试这个(对于 mysql

UPDATE your_table
SET col1 = CONCAT_WS('.', col1, col2)

这适用于 MS-SQL

UPDATE your_table
SET col1 =col1 || "." || col2

【讨论】:

【参考方案2】:

家庭作业?

我假设mysql:

update table t
set col1 = concat( col1, '.', col2)

【讨论】:

不,这不是家庭作业!我创建了我的表,在插入大量数据后,我明白两列应该存储在一起。谢谢 即使是家庭作业...这也是开发人员所做的事情... 30% 的时间在 Google 上,30% 的时间在 SO,30% 的时间在实施,10% 的时间回复 cmets 的原因不是家庭作业。 @Armstrongest ,你错过了 5% 的喝咖啡。我们保持联系。感谢您的评论。 @danihp 只有 5% 喝咖啡??你很幸运! ;)【参考方案3】:

使用 MS SQL Server 2014 我是这样用的

UPDATE CANDIDATES 
SET NEW_ADDRESS_EN = CANDI_HOME_NO + ', ' + 
CANDI_VILLAGE + ', ' + CANDI_ROAD + ' Road, ' + CANDI_PROVINCE

【讨论】:

以上是关于连接两个表列并用结果更新一个的主要内容,如果未能解决你的问题,请参考以下文章

sql 用union合并合并查询结果

集合返回函数(json_array_elements)与表列的连接结果

不能同时约束连接表列

laravel 中的两个表连接和计算第二个表列

如何从一个表列中获取值,将它们与字符串连接并将它们插入另一个表中?

如何加快 SQL 中的连接更新?我的陈述似乎无限期地运行