我有一个名为属性的列,其中包含一个JSON blob。此blob可以在单行中包含单个和多个key:值。
以下是3行简化样本数据:
{"68c4":["yes"], "c8ew":["0","1"], "p6i4":["London","Frankfurt","Tokyo"]}
{"472h":["USD"], "c8ew":["-1","9"], "p6i4":["New York"]}
{"472h":["EUR","JPY"]}
密钥是UUID,我需要用人类可读的组件替换它们
我知道我可以这样写:
SELECT JSON_MODIFY(attributes, '$."p6i4"', 'City') AS modified
但这改变了价值。我的问题是我需要更改密钥。有谁知道怎么做?
答案 0 :(得分:2)
您可以使用旧密钥的值/片段插入新密钥并删除旧密钥:值。
此代码将使用“p6i4”中的值添加新的“City”键:
width
请注意,您需要使用JSON_QUERY,因为您有数组值。 如果在将其复制到另一个键后在旧键中设置NULL值,JSON_MODIFY将删除它:
house