如何将 JSON_INSERT 与字符串中的键一起使用?
How to use JSON_INSERT with the key that is in string?
我找不到在键为字符串的 json 中使用 JSON_INSERT 的方法:
{
"computer": {
"display": blue
},
"computer home":{}
}
这样操作:
JSON_INSERT(type, '$.computer.color', 'red');`
但不是这样的:
JSON_INSERT(type, '$.computer home.color', 'red');`
我的愿望:
{
"computer" :{
"display": "blue",
"color": "red"
},
"computer home":{
"color": "red"
}
}
显然它不起作用,因为 json 键“computer home”有 space,即使有 spaces,我如何插入它?
这是一个演示:
mysql> set @j = '{
"computer": {
"display": "blue"
},
"computer home":{}
}';
(请注意,我也必须将“blue”放在双引号中;所有字符串都必须在 JSON 中以这种方式分隔)
您可以使用包含空格(或标点符号)的 JSON 键,方法是用双引号分隔它们:
mysql> select json_insert(@j, '$."computer home".color', 'red') as result;
+----------------------------------------------------------------------+
| result |
+----------------------------------------------------------------------+
| {"computer": {"display": "blue"}, "computer home": {"color": "red"}} |
+----------------------------------------------------------------------+
我找不到在键为字符串的 json 中使用 JSON_INSERT 的方法:
{
"computer": {
"display": blue
},
"computer home":{}
}
这样操作:
JSON_INSERT(type, '$.computer.color', 'red');`
但不是这样的:
JSON_INSERT(type, '$.computer home.color', 'red');`
我的愿望:
{
"computer" :{
"display": "blue",
"color": "red"
},
"computer home":{
"color": "red"
}
}
显然它不起作用,因为 json 键“computer home”有 space,即使有 spaces,我如何插入它?
这是一个演示:
mysql> set @j = '{
"computer": {
"display": "blue"
},
"computer home":{}
}';
(请注意,我也必须将“blue”放在双引号中;所有字符串都必须在 JSON 中以这种方式分隔)
您可以使用包含空格(或标点符号)的 JSON 键,方法是用双引号分隔它们:
mysql> select json_insert(@j, '$."computer home".color', 'red') as result;
+----------------------------------------------------------------------+
| result |
+----------------------------------------------------------------------+
| {"computer": {"display": "blue"}, "computer home": {"color": "red"}} |
+----------------------------------------------------------------------+