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函數。