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

json_exists

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

подсказка

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

Ускорьте ваши запросы с помощью generated columns

Синтаксис

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