【问题标题】:SQL query update column value twice in single query (MySQL)SQL查询在单个查询中更新列值两次(MySQL)
【发布时间】:2017-03-14 16:54:52
【问题描述】:

我有一个名为 data 的文本列,它的值采用格式

"`set1:val1,val2|set2:val3`" 

所以我有 2 个集合字段和每个集合中的 n 个值字段。我知道这不是规范化或存储数据的正确方法,但它是一个遗留项目,我现在无法更改架构。

现在我需要一个查询,给定每个集合的两个值,比如 val4 and val5 我需要我的最终数据字段是

"`set1:val1,val2,val4|set2:val3,val5`"

我真的不是 SQL 查询方面的专家,所以需要更新上述查询。请注意,我总是会为每个集合获得两个值,并且需要附加到现有集合值中。

【问题讨论】:

  • 你的问题我不清楚...尝试添加适当的数据样本..和预期的结果(并为数据使用适当的格式)
  • 你可以合并它

标签: mysql sql sql-update


【解决方案1】:

这是一个丑陋问题的丑陋解决方案

UPDATE table
SET data = CONCAT(REPLACE(data,'|',',val4|'), ',val5')
WHERE data = '...'

REPLACE 操作将set1:val1,val2|set2:val3 更改为set1:val1,val2,val4|set2:val3,然后CONACT 操作将其更改为set1:val1,val2,val4|set2:val3,val5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-10
    • 2015-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-21
    • 2013-01-27
    相关资源
    最近更新 更多