Перейти к содержимому
Последнее обновление

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. Пример 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 |
    +-------------------------------+
  2. Параметры со значением 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 |
    +---------------------------------------------+