JSON_LENGTH()¶
简介¶
返回JSON文档的长度
语法¶
JSON_LENGTH(json_doc[, path])
说明¶
1. 如果给出了path参数,那么就返回由路径标识的文档中值的长度。
2. 如果任何参数为NULL或路径参数没有标识文档中的值,则返回NULL。
3. 如果json_doc参数不是有效的JSON文档或path参数不是有效的路径表达式,或path包含通配符*或**,就会发生错误。
4. 文件的长度如下所示:
(1)标量的长度是1。
(2)数组的长度是数组元素的数量。
(3)对象的长度是对象成员的数量。
(4)长度不计算嵌套数组内部或嵌套对象内部的长度。
示例¶
-- 标量
SELECT JSON_LENGTH('1') FROM DUAL;
JSON_LENGTH(int) |
----------------------
1 |
总数目:1
-- 数组
SELECT JSON_LENGTH('[1,2,3]') FROM DUAL;
JSON_LENGTH(int) |
----------------------
3 |
总数目:1
SELECT JSON_LENGTH('[1,2,3]','$[1]') FROM DUAL;
JSON_LENGTH(int) |
----------------------
1 |
总数目:1
-- 对象
SELECT JSON_LENGTH('{"a":"b","c":"d","e":"f"}') FROM DUAL;
JSON_LENGTH(int) |
----------------------
3 |
总数目:1
SELECT JSON_LENGTH('{"a":"b","c":"d","e":"f"}','$.a') FROM DUAL;
JSON_LENGTH(int) |
----------------------
1 |
总数目:1
-- 嵌套对象与嵌套数组
SELECT JSON_LENGTH('[1,[1,2,3,4],3]') FROM DUAL;
JSON_LENGTH(int) |
----------------------
3 |
总数目:1
SELECT JSON_LENGTH('[1,{"a":"b","c":"d","e":"f"},3]') FROM DUAL;
JSON_LENGTH(int) |
----------------------
3 |
总数目:1
SELECT JSON_LENGTH('{"a":"b","c":{"a":"b","c":"d","e":"f"},"e":"f"}') FROM DUAL;
JSON_LENGTH(int) |
----------------------
3 |
总数目:1
SELECT JSON_LENGTH('{"a":"b","c":[1,2,3,4,5],"e":"f"}') FROM DUAL;
JSON_LENGTH(int) |
----------------------
3 |
总数目:1