跳到主要内容

JSON_LENGTH

描述

该函数返回 JSON 文档的长度。如果给出了 path 参数,则返回由路径标识的文档中值的长度。

语法

JSON_LENGTH(json_doc[, path])

说明

json_doc 参数用于指定 JSON 文档,path 为路径参数。如果任何参数为 NULLpath 参数未标识文档中的值,则返回 NULL

以下情况都会发生报错:

  • json_doc 参数不是有效的 JSON 文档。

  • path 参数不是有效的路径表达式。

  • path 参数包含 * 或 ** 通配符。

JSON 文档的长度定义如下:

  • 标量的长度为 1。

  • 数组的长度是数组元素的数量。

  • 对象的长度是对象成员的数量。

  • 不计算嵌套数组或对象的长度。

示例

SELECT JSON_LENGTH('[1, 2, {"a": 3}, 4]');
+------------------------------------+
| JSON_LENGTH('[1, 2, {"a": 3}, 4]') |
+------------------------------------+
| 4 |
+------------------------------------+
1 row in set (0.001 sec)

SELECT JSON_LENGTH('{"a": 1, "b": {"c": 303}}');
+------------------------------------------+
| JSON_LENGTH('{"a": 1, "b": {"c": 303}}') |
+------------------------------------------+
| 2 |
+------------------------------------------+
1 row in set (0.001 sec)

SELECT JSON_LENGTH('{"a": 1, "b": {"c": 30}}', '$.b');
+------------------------------------------------+
| JSON_LENGTH('{"a": 1, "b": {"c": 30}}', '$.b') |
+------------------------------------------------+
| 1 |
+------------------------------------------------+
1 row in set (0.001 sec)