json_insert
SinceVersion dev
Description
Syntax
VARCHAR json_insert(VARCHAR json_str, VARCHAR path, VARCHAR val[, VARCHAR path, VARCHAR val] ...)
json_insert
function inserts data in a JSON and returns the result.Returns NULL if json_str
or path
is NULL. Otherwise, an error occurs if the json_str
argument is not a valid JSON or any path argument is not a valid path expression or contains a * wildcard.
The path-value pairs are evaluated left to right.
A path-value pair for a nonexisting path in the json adds the value to the json if the path identifies one of these types of values:
A member not present in an existing object. The member is added to the object and associated with the new value.
A position past the end of an existing array. The array is extended with the new value. If the existing value is not an array, it is autowrapped as an array, then extended with the new value.
Otherwise, a path-value pair for a nonexisting path in the json is ignored and has no effect.
example
MySQL> select json_insert(null, null, null);
+---------------------------------+
| json_insert(NULL, NULL, 'NULL') |
+---------------------------------+
| NULL |
+---------------------------------+
MySQL> select json_insert('{"k": 1}', "$.k", 2);
+---------------------------------------+
| json_insert('{\"k\": 1}', '$.k', '2') |
+---------------------------------------+
| {"k":1} |
+---------------------------------------+
MySQL> select json_insert('{"k": 1}', "$.j", 2);
+---------------------------------------+
| json_insert('{\"k\": 1}', '$.j', '2') |
+---------------------------------------+
| {"k":1,"j":2} |
+---------------------------------------+
keywords
JSON, json_insert