La fonction JSON_LENGTH renvoie la longueur des données JSON situées à un chemin d'accès spécifié.
Syntaxe
BIGINT JSON_LENGTH(JSON <json> [, STRING <json_path>])
-- Standard example.
-- Returns 2.
SELECT JSON_LENGTH(JSON '{"k1":"v31","k2":300}');
Paramètres
json : obligatoire. Données JSON de type JSON.
json_path : facultatif. Chemin d'accès aux données JSON, de type STRING. Si vous ne spécifiez pas ce paramètre, la fonction renvoie par défaut la longueur de l'intégralité des données JSON.
Valeur renvoyée
Renvoie une valeur BIGINT selon les règles suivantes :
Si json est un tableau JSON, la fonction renvoie le nombre d'éléments du tableau.
Si json est un objet JSON, la fonction renvoie le nombre de membres de l'objet.
Si les données json ne constituent ni un tableau JSON ni un objet JSON, la fonction renvoie 1.
Si json ou json_path est null, la fonction renvoie null.
Cette fonction ne compte pas les éléments ou les membres contenus dans des tableaux ou objets imbriqués.
Exemples
-
Exemple 1 : exemple de base
-- Returns 2. SELECT JSON_LENGTH(JSON '{"k1":"v31","k2":300}'); -- Returns 6. SELECT JSON_LENGTH(JSON '[1,2,3,4,5,6]'); -- Returns 3. The length of nested arrays or objects is not considered. SELECT JSON_LENGTH( JSON '{"name": "John", "age": 22, "skills":["PHP","MySQL","JavaScript"]}' ); -- Returns 2. SELECT JSON_LENGTH(JSON '{"x": 1, "y": [1, 2]}', '$.y'); -- Returns null. SELECT JSON_LENGTH(null); -
Exemple 2 : la fonction renvoie 1 si les données json ne constituent ni un tableau JSON ni un objet JSON.
-- Returns 1. SELECT JSON_LENGTH(JSON 'null'); -- Returns 1. SELECT JSON_LENGTH(JSON '123'); -- Returns 1. SELECT JSON_LENGTH(JSON '123.34'); -- Returns 1. SELECT JSON_LENGTH(JSON 'true');
Fonctions associées
JSON_LENGTH est une fonction JSON. Pour plus d'informations sur les autres fonctions JSON, consultez Fonctions JSON.