JSON_LENGTH
説明
JSON_LENGTH関数は、指定されたJSONドキュメントの長さまたは要素数を返します。JSONドキュメントが配列の場合、配列内の要素数が返されます。JSONドキュメントがオブジェクトの場合、オブジェクト内のキーと値のペアの数が返されます。JSONドキュメントが空または無効な場合はNULLを返します。
構文
JSON_LENGTH(<json_str> [ , <json_path> ])
必須パラメータ
| parameters | described |
|---|---|
<json_str> | チェックする必要があるJSONストリングの長さ。 |
オプションパラメータ
| parameters | described |
|---|---|
<json_path> | パスが指定された場合、JSON_LENGTH()関数はJSONドキュメント内のパスにマッチするデータの長さを返します。そうでない場合はJSONドキュメントの長さを返します |
使用上の注意
この関数は以下のルールに基づいてJSONドキュメントの長さを計算します:
- スカラーの長さは1です。例:'1'、'"x "'、'true'、'false'、'null'はすべて長さ1です。
- 配列の長さは配列要素の数です。例:'[1,2]'の長さは2です。
- オブジェクトの長さはオブジェクトメンバーの数です。例:'{"x": 1}'の長さは1です
戻り値
- JSON配列の場合、配列内の要素数を返します。
- JSONオブジェクトの場合、オブジェクト内のキー・バリューペアの数を返します。
- 無効なJSONストリングの場合、NULLを返します。
- その他の型(文字列、数値、真偽値、nullなど)の場合、NULLを返します。
例
SELECT json_length('{"k1":"v31","k2":300}');
+--------------------------------------+
| json_length('{"k1":"v31","k2":300}') |
+--------------------------------------+
| 2 |
+--------------------------------------+
SELECT json_length('"abc"');
+----------------------+
| json_length('"abc"') |
+----------------------+
| 1 |
+----------------------+
SELECT json_length('{"x": 1, "y": [1, 2]}', '$.y');
+---------------------------------------------+
| json_length('{"x": 1, "y": [1, 2]}', '$.y') |
+---------------------------------------------+
| 2 |
+---------------------------------------------+