説明
この関数は、JSONドキュメントの長さを返します。pathパラメータが指定されている場合、そのパスで識別されるドキュメント内の値の長さを返します。
構文
JSON_LENGTH(json_doc[, path])
説明
json_docパラメータはJSONドキュメントを指定するために使用され、pathはパスパラメータです。いずれかのパラメータがNULLである場合、またはpathパラメータがドキュメント内の値を指定していない場合、NULL返します。
次の場合はエラーが発生します。
json_docパラメータが有効なJSONドキュメントではありません。pathパラメータが有効なパス式ではありません。pathパラメータに*または**ワイルドカードが含まれています。
JSONドキュメントの長さは次のように定義されます。
スカラーの長さは1です。
配列の長さは配列要素の数です。
オブジェクトの長さはオブジェクトメンバーの数です。
ネストされた配列やオブジェクトの長さは計算されません。
例
obclient> SELECT JSON_LENGTH('[1, 2, {"a": 3}, 4]');
+------------------------------------+
| JSON_LENGTH('[1, 2, {"a": 3}, 4]') |
+------------------------------------+
| 4 |
+------------------------------------+
1 row in set
obclient> SELECT JSON_LENGTH('{"a": 1, "b": {"c": 303}}');
+------------------------------------------+
| JSON_LENGTH('{"a": 1, "b": {"c": 303}}') |
+------------------------------------------+
| 2 |
+------------------------------------------+
1 row in set
obclient> SELECT JSON_LENGTH('{"a": 1, "b": {"c": 30}}', '$.b');
+------------------------------------------------+
| JSON_LENGTH('{"a": 1, "b": {"c": 30}}', '$.b') |
+------------------------------------------------+
| 1 |
+------------------------------------------------+
1 row in set