に最終更新
JSON_LENGTH
説明
JSON_LENGTH は JSON 文書の長さまたは要素数を返します。配列では要素数、オブジェクトではキーと値の組の数を返します。無効な JSON 文書には NULL を返します。
構文
JSON_LENGTH(<json_object> [, <path>])
パラメータ
必須パラメータ
| パラメータ | 説明 |
|---|---|
<json_object> | 長さを調べる JSON 型の文書。必須。 |
任意パラメータ
| パラメータ | 説明 |
|---|---|
<path> | 文書内の対象を指定する文字列型のパス。任意。 |
注意事項
JSON 文書の長さは次の規則で計算します。
- スカラー値の長さは 1 です。例えば '1'、'"x"'、'true'、'false'、'null' はすべて長さ 1 です。
- 配列の長さは要素数です。例えば '[1, 2]' の長さは 2 です。
- オブジェクトの長さはメンバー数です。例えば '{"x": 1, "y": [1, 2, 3]}' の長さは 2 です。
戻り値
- JSON 配列では要素数を返します。
- JSON オブジェクトではキーと値の組の数を返します。
- JSON スカラー値(文字列、数値、真偽値、null など)では 1 を返します。
- 無効な JSON 文字列では NULL を返します。入力が NULL の場合も NULL を返します。
例
- 使用例 1
SELECT json_length('{"k1":"v31","k2":300}');+--------------------------------------+
| json_length('{"k1":"v31","k2":300}') |
+--------------------------------------+
| 2 |
+--------------------------------------+SELECT json_length('[1, 2, 3, 4, 5, 6]');+-----------------------------------+
| json_length('[1, 2, 3, 4, 5, 6]') |
+-----------------------------------+
| 6 |
+-----------------------------------+ - スカラー値の長さ
SELECT json_length('"abc"');+----------------------+
| json_length('"abc"') |
+----------------------+
| 1 |
+----------------------+SELECT json_length('123');+--------------------+
| json_length('123') |
+--------------------+
| 1 |
+--------------------+SELECT json_length('{"k": null}');+----------------------------+
| json_length('{"k": null}') |
+----------------------------+
| 1 |
+----------------------------+ - パスを指定する
SELECT json_length('{"x": 1, "y": [1, 2]}', '$.y');+---------------------------------------------+
| json_length('{"x": 1, "y": [1, 2]}', '$.y') |
+---------------------------------------------+
| 2 |
+---------------------------------------------+ - NULL パラメータ
SELECT json_length('{"x": 1, "y": [1, 2]}', NULL);+--------------------------------------------+
| json_length('{"x": 1, "y": [1, 2]}', NULL) |
+--------------------------------------------+
| NULL |
+--------------------------------------------+SELECT json_length(NULL, '$.y');+--------------------------+
| json_length(NULL, '$.y') |
+--------------------------+
| NULL |
+--------------------------+