Последнее обновление
JSON_CONTAINS
Описание
Определяет, содержит ли документ JSON указанный элемент JSON. Если указанный элемент присутствует в документе JSON, возвращается 1, иначе возвращается 0. Если документ JSON или искомый элемент некорректен, возвращается NULL.
Синтаксис
JSON_CONTAINS(<json_object>, <candidate>[, <json_path>])
Параметры
Обязательные параметры
<json_object>: значение типа JSON, в котором проверяется наличие<candidate>.<candidate>: значение типа JSON, наличие которого требуется проверить.
Необязательные параметры
<json_path>: значение типа String, задающее начальный путь поиска. Если не задано, поиск по умолчанию начинается с корня.
Возвращаемое значение
- Значение NULL: если любой из трёх параметров равен NULL, возвращается NULL.
- Истина: если
<json_object>содержит<candidate>, возвращается True. - Ложь: если
<json_object>не содержит<candidate>, возвращается False. - Если
<json_object>или<candidate>не относится к типу JSON, выдаётся ошибка.
Примеры
- Пример 1
SET @j = '{"a": 1, "b": 2, "c": {"d": 4}}';
SET @j2 = '1';
SELECT JSON_CONTAINS(@j, @j2, '$.a');+-------------------------------+
| JSON_CONTAINS(@j, @j2, '$.a') |
+-------------------------------+
| 1 |
+-------------------------------+SELECT JSON_CONTAINS(@j, @j2, '$.b');+-------------------------------+
| JSON_CONTAINS(@j, @j2, '$.b') |
+-------------------------------+
| 0 |
+-------------------------------+SELECT JSON_CONTAINS(@j, '{"a": 1}');+-------------------------------+
| JSON_CONTAINS(@j, '{"a": 1}') |
+-------------------------------+
| 1 |
+-------------------------------+ - Параметры со значением NULL
SELECT JSON_CONTAINS(NULL, '{"a": 1}');+---------------------------------+
| JSON_CONTAINS(NULL, '{"a": 1}') |
+---------------------------------+
| NULL |
+---------------------------------+SELECT JSON_CONTAINS('{"a": 1}', NULL);+---------------------------------+
| JSON_CONTAINS('{"a": 1}', NULL) |
+---------------------------------+
| NULL |
+---------------------------------+SELECT JSON_CONTAINS('{"a": 1}', '{"a": 1}', NULL);+---------------------------------------------+
| JSON_CONTAINS('{"a": 1}', '{"a": 1}', NULL) |
+---------------------------------------------+
| NULL |
+---------------------------------------------+