json_insert

SinceVersion dev

Description

Syntax

VARCHAR json_insert(VARCHAR json_str, VARCHAR path, VARCHAR val[, VARCHAR path, VARCHAR val] ...)

json_set 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

  1. MySQL> select json_insert(null, null, null);
  2. +---------------------------------+
  3. | json_insert(NULL, NULL, 'NULL') |
  4. +---------------------------------+
  5. | NULL |
  6. +---------------------------------+
  7. MySQL> select json_insert('{"k": 1}', "$.k", 2);
  8. +---------------------------------------+
  9. | json_insert('{\"k\": 1}', '$.k', '2') |
  10. +---------------------------------------+
  11. | {"k":1} |
  12. +---------------------------------------+
  13. MySQL> select json_insert('{"k": 1}', "$.j", 2);
  14. +---------------------------------------+
  15. | json_insert('{\"k\": 1}', '$.j', '2') |
  16. +---------------------------------------+
  17. | {"k":1,"j":2} |
  18. +---------------------------------------+

keywords

JSON, json_insert