Перейти к основному содержимому
Версия: 2.0.x

json_exists

Проверяет, содержит ли JSON-объект элемент, который можно найти по выражению json_path. Если элемент существует, функция JSON_EXISTS возвращает 1. В противном случае функция JSON_EXISTS возвращает 0.

подсказка

Все JSON-функции и операторы перечислены в навигации и на обзорной странице

Ускорьте ваши запросы с помощью генерируемых столбцов

Синтаксис

json_exists(json_object_expr, json_path)

Параметры

  • json_object_expr: выражение, представляющее JSON-объект. Объект может быть JSON-столбцом или JSON-объектом, созданным функцией-конструктором JSON, такой как PARSE_JSON.

  • json_path: выражение, представляющее путь к элементу в JSON-объекте. Значение этого параметра — строка. Дополнительную информацию о синтаксисе JSON-путей, поддерживаемом Selena, см. в разделе Обзор JSON-функций и операторов.

Возвращаемое значение

Возвращает значение типа BOOLEAN.

Примеры

Пример 1: Проверить, содержит ли указанный JSON-объект элемент, который можно найти по выражению '$.a.b'. В этом примере элемент существует в JSON-объекте. Поэтому функция json_exists возвращает 1.

mysql> SELECT json_exists(PARSE_JSON('{"a": {"b": 1}}'), '$.a.b') ;

-> 1

Пример 2: Проверить, содержит ли указанный JSON-объект элемент, который можно найти по выражению '$.a.c'. В этом примере элемент не существует в JSON-объекте. Поэтому функция json_exists возвращает 0.

mysql> SELECT json_exists(PARSE_JSON('{"a": {"b": 1}}'), '$.a.c') ;

-> 0

Пример 3: Проверить, содержит ли указанный JSON-объект элемент, который можно найти по выражению '$.a[2]'. В этом примере JSON-объект, который является массивом с именем a, содержит элемент с индексом 2. Поэтому функция json_exists возвращает 1.

mysql> SELECT json_exists(PARSE_JSON('{"a": [1,2,3]}'), '$.a[2]') ;

-> 1

Пример 4: Проверить, содержит ли указанный JSON-объект элемент, который можно найти по выражению '$.a[3]'. В этом примере JSON-объект, который является массивом с именем a, не содержит элемент с индексом 3. Поэтому функция json_exists возвращает 0.

mysql> SELECT json_exists(PARSE_JSON('{"a": [1,2,3]}'), '$.a[3]') ;

-> 0