我有一个名为data
的文本列,其格式为
"`set1:val1,val2|set2:val3`"
所以我在每组中有2组字段和n个值字段。我知道这不是规范化或正确的存储数据方法,但它是一个遗产项目,我现在无法改变架构。
现在我需要一个查询,给出每个集合的两个值说val4 and val5
我需要我的最终数据字段
"`set1:val1,val2,val4|set2:val3,val5`"
我真的不是SQL查询的专家,所以需要上面的更新查询。请注意,我将始终只为每个集合获取两个值,并且需要附加到现有的设置值中。
答案 0 :(得分: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