我把这个json存储在db中
{
"endDate": "2018-10-10",
"startDate": "2017-09-05",
"oldKeyValue": {
"foo": 1000,
"bar": 2000,
"baz": 3000
},
"anotherValue": 0
}
如何重命名 "oldKeyValue"
关键 "newKeyValue"
不知道 UPDATE
询问?我在找这样的东西
UPDATE `my_table` SET `my_col` = JSON()
注:只需更改键,值(即。 {"foo": 1000, "bar": 2000, "baz": 3000}
)应该保持不变
3条答案
按热度按时间qxsslcnc1#
没有简单的json函数可以做到这一点。我们可以使用一些json函数的组合。
我们将使用删除oldkey oldvalue对
Json_Remove()
函数,然后Json_Insert()
newkey-oldvalue对。Json_Extract()
函数用于获取json文档中输入键对应的值。演示
结果
作为替代
Json_Extract()
,我们也可以使用->
运算符访问json文档中给定键对应的值。jtw3ybtb2#
我个人更喜欢另一种方法:
这将直接替换json字符串中的键名,而不破坏json结构。
我正在使用附加的
:
以避免无意中替换某个值。siv3szwd3#
纯文本搜索和替换只有在json以精简/紧凑格式存储且没有额外空格时才起作用。