Топ-100
top of page
CerebroSQL

JSON_INSERT

Database: MySQL

68747470733a2f2f7374796c65732e7265646469746d656469612e636f6d2f74355f32716d366b2f7374796c65

Topic

Syntax:
JSON_INSERT(json_doc, path, val[, path, val] ...)

Inserts data into a JSON document and returns the result. Returns NULL
if any argument is NULL. An error occurs if the json_doc argument is
not a valid JSON document or any path argument is not a valid path
expression or contains a * or ** wildcard.

The path-value pairs are evaluated left to right. The document produced
by evaluating one pair becomes the new value against which the next
pair is evaluated.

A path-value pair for an existing path in the document is ignored and
does not overwrite the existing document value. A path-value pair for a
nonexisting path in the document adds the value to the document if the
path identifies one of these types of values:

o A member not present in an existing object. The member is added to
the object and associated with the new value.

o 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 document is
ignored and has no effect.

For a comparison of JSON_INSERT(), JSON_REPLACE(), and JSON_SET(), see
the discussion of JSON_SET().

URL: https://dev.mysql.com/doc/refman/8.0/en/json-modification-functions.html

Example

mysql> SET @j = '{ "a": 1, "b": [2, 3]}';
mysql> SELECT JSON_INSERT(@j, '$.a', 10, '$.c', '[true, false]');
+----------------------------------------------------+
| JSON_INSERT(@j, '$.a', 10, '$.c', '[true, false]') |
+----------------------------------------------------+
| {"a": 1, "b": [2, 3], "c": "[true, false]"} |
+----------------------------------------------------+

mysql> SELECT JSON_INSERT(@j, '$.a', 10, '$.c', CAST('[true, false]' AS JSON));
+------------------------------------------------------------------+
| JSON_INSERT(@j, '$.a', 10, '$.c', CAST('[true, false]' AS JSON)) |
+------------------------------------------------------------------+
| {"a": 1, "b": [2, 3], "c": [true, false]} |
+------------------------------------------------------------------+
1 row in set (0.00 sec)

bottom of page