Последнее обновление
JSON_LENGTH
Описание
Функция JSON_LENGTH возвращает длину или количество элементов в заданном документе JSON. Если документ JSON представляет собой массив, функция возвращает количество элементов массива; если документ JSON представляет собой объект, она возвращает количество пар «ключ-значение» в объекте. Если документ JSON некорректен, функция возвращает NULL.
Синтаксис
JSON_LENGTH(<json_object> [, <path>])
Параметры
Обязательные параметры
<json_object>: документ типа JSON, длину которого требуется вернуть.
Необязательные параметры
<path>: параметр строкового типа, позволяющий получить длину конкретного объекта в документе.
Примечания
Эта функция вычисляет длину документа JSON по следующим правилам:
- Длина скалярного значения равна 1. Например: '1', '"x"', 'true', 'false', 'null' имеют длину 1.
- Длина массива равна количеству его элементов. Например: '[1, 2]' имеет длину 2.
- Длина объекта равна количеству его членов. Например: '{"x": 1, "y": [1, 2, 3]}' имеет длину 2.
Возвращаемое значение
- Для массивов JSON возвращает количество элементов массива.
- Для объектов JSON возвращает количество пар «ключ-значение» в объекте.
- Для скалярных типов JSON (таких как строки, числа, логические значения, null и т. д.) возвращает 1.
- Для некорректных строк JSON возвращает NULL.
Примеры
- Пример 1
SELECT json_length('{"k1":"v31","k2":300}');+--------------------------------------+
| json_length('{"k1":"v31","k2":300}') |
+--------------------------------------+
| 2 |
+--------------------------------------+SELECT json_length('[1, 2, 3, 4, 5, 6]');+-----------------------------------+
| json_length('[1, 2, 3, 4, 5, 6]') |
+-----------------------------------+
| 6 |
+-----------------------------------+ - Длина значений скалярных типов
SELECT json_length('"abc"');+----------------------+
| json_length('"abc"') |
+----------------------+
| 1 |
+----------------------+SELECT json_length('123');+--------------------+
| json_length('123') |
+--------------------+
| 1 |
+--------------------+SELECT json_length('{"k": null}');+----------------------------+
| json_length('{"k": null}') |
+----------------------------+
| 1 |
+----------------------------+ - Указание пути
SELECT json_length('{"x": 1, "y": [1, 2]}', '$.y');+---------------------------------------------+
| json_length('{"x": 1, "y": [1, 2]}', '$.y') |
+---------------------------------------------+
| 2 |
+---------------------------------------------+ - Параметры NULL
SELECT json_length('{"x": 1, "y": [1, 2]}', NULL);+--------------------------------------------+
| json_length('{"x": 1, "y": [1, 2]}', NULL) |
+--------------------------------------------+
| NULL |
+--------------------------------------------+SELECT json_length(NULL, '$.y');+--------------------------+
| json_length(NULL, '$.y') |
+--------------------------+
| NULL |
+--------------------------+