JSON_LENGTH函数用于返回指定路径下的JSON数据的长度。
命令格式
BIGINT JSON_LENGTH(JSON <json> [, STRING <json_path>])
-- 标准示例。
-- 返回2。
SELECT JSON_LENGTH(JSON '{"k1":"v31","k2":300}');参数说明
json: 必填。需要检查长度的 JSON数据。JSON类型。
json_path:可选。指定JSON路径。STRING类型。若未指定,默认返回整个JSON数据的长度。
返回值说明
返回BIGINT类型。返回规则如下:
若json是一个JSON ARRAY,则返回值为数组中的元素数量。
若json是一个JSON OBJECT,则返回值为对象中的成员数量。
若json数据为JSON ARRAY和JSON OBJECT以外的类型,均返回1。
若json或json_path为null时,返回null。
该函数不考虑嵌套数组或对象的长度。
使用示例
示例1:基本示例。
-- 返回2。 SELECT JSON_LENGTH(JSON '{"k1":"v31","k2":300}'); -- 返回6。 SELECT JSON_LENGTH(JSON '[1,2,3,4,5,6]'); -- 返回3。不考虑嵌套数组或对象的长度。 SELECT JSON_LENGTH( JSON '{"name": "John", "age": 22, "skills":["PHP","MySQL","JavaScript"]}' ); -- 返回2。 SELECT JSON_LENGTH(JSON '{"x": 1, "y": [1, 2]}', '$.y'); -- 返回null。 SELECT JSON_LENGTH(null);示例2:json数据为JSON ARRAY和JSON OBJECT以外的类型,均返回1。
-- 返回1。 SELECT JSON_LENGTH(JSON 'null'); -- 返回1。 SELECT JSON_LENGTH(JSON '123'); -- 返回1。 SELECT JSON_LENGTH(JSON '123.34'); -- 返回1。 SELECT JSON_LENGTH(JSON 'true');
相关函数
JSON_LENGTH函数属于JSON函数,更多JSON类型函数请参见JSON函数。
该文章对您有帮助吗?