在表中有一个列
table: articles
rows: id type: int(11)
json_data type: json
created_at type: datetime
updated_at type: datetime
现在json_data
是
{
"version":"1",
"title":"A good product",
"body":"Very good",
"published_at":null
}
想要基于当前元数据将其数据更新为新的json模式格式:
{
"version":"2",
"items":[
{
"title":"A good product",
"body":"Very good",
"published_at":null
}
]
}
如果不使用编程语言怎么办。可以通过MySQL的程序来做到吗?
UPDATE articles
SET json_data = JSON_OBJECT('version', 2,
'items', JSON_ARRAY(JSON_REMOVE(json_data, '$.version')));
如果运行两次update命令,数据将被嵌套并破坏格式-fiddle。您知道如何避免多次运行吗?– iooi
添加适当的WHERE,检查“ $ .version”,仅更新该值为1的那些行:
UPDATE articles
SET json_data = JSON_OBJECT('version', 2, 'items', JSON_ARRAY(JSON_REMOVE(json_data, '$.version')))
WHERE json_data->>"$.version" = 1;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句