メインコンテンツまでスキップ
バージョン: 4.x

JSON_LENGTH

説明

JSON_LENGTH関数は、指定されたJSONドキュメントの長さまたは要素数を返します。JSONドキュメントが配列の場合、配列内の要素数が返されます。JSONドキュメントがオブジェクトの場合、オブジェクト内のキーと値のペアの数が返されます。JSONドキュメントが空または無効な場合はNULLを返します。

構文

JSON_LENGTH(<json_str> [ , <json_path> ])

必須パラメータ

parametersdescribed
<json_str>チェックする必要があるJSONストリングの長さ。

オプションパラメータ

parametersdescribed
<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 |
+---------------------------------------------+