Топ-100
top of page
Волнистый абстрактный фон
CerebroSQL

JSON_REPLACE

База данных: MySQL

68747470733a2f2f7374796c65732e7265646469746d656469612e636f6d2f74355f32716d366b2f7374796c65

Topic

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

Replaces existing values in 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 overwrites the
existing document value with the new value. A path-value pair for a
nonexisting path in the document is ignored and has no effect.

In MySQL 8.0.4, the optimizer can perform a partial, in-place update of
a JSON column instead of removing the old document and writing the new
document in its entirety to the column. This optimization can be
performed for an update statement that uses the JSON_REPLACE() function
and meets the conditions outlined in
https://dev.mysql.com/doc/refman/8.0/en/json.html#json-partial-updates.

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_REPLACE(@j, '$.a', 10, '$.c', '[true, false]');
+-----------------------------------------------------+
| JSON_REPLACE(@j, '$.a', 10, '$.c', '[true, false]') |
+-----------------------------------------------------+
| {"a": 10, "b": [2, 3]} |
+-----------------------------------------------------+

bottom of page