【问题标题】: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 来做到这一点?

【问题讨论】:

    标签: sql merge concatenation


    【解决方案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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-03
        • 1970-01-01
        • 2016-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多