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