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

json_query

Запрашивает значение элемента, который может быть найден по выражению json_path в JSON-объекте, и возвращает JSON-значение.

подсказка

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

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

Синтаксис

json_query(json_object_expr, json_path)

Параметры

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

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

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

Возвращает JSON-значение.

Если элемент не существует, функция json_query возвращает SQL-значение NULL.

Примеры

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

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

-> 1

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

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

-> NULL

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

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

-> 3

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

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

-> NULL