A função JSON_LENGTH retorna o comprimento dos dados JSON em um caminho especificado.
Sintaxe
BIGINT JSON_LENGTH(JSON <json> [, STRING <json_path>])
-- Standard example.
-- Returns 2.
SELECT JSON_LENGTH(JSON '{"k1":"v31","k2":300}');
Parâmetros
json: Obrigatório. Dados JSON do tipo JSON.
json_path: Opcional. Caminho para os dados JSON, do tipo STRING. Se não especificado, a função retorna o comprimento total dos dados JSON por padrão.
Valor de retorno
Retorna um valor BIGINT conforme as regras a seguir:
Se json for um array JSON, retorna o número de elementos do array.
Se json for um objeto JSON, retorna o número de membros do objeto.
Se os dados json não forem um array nem um objeto JSON, retorna 1.
Se json ou json_path for nulo, retorna null.
A função não contabiliza elementos ou membros dentro de arrays ou objetos aninhados.
Exemplos
-
Exemplo 1: Uso básico
-- 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); -
Exemplo 2: Retorno de 1 quando os dados json não são um array nem um objeto 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');
Funções relacionadas
JSON_LENGTH é uma função JSON. Para mais informações sobre outras funções desse tipo, consulte JSON functions.