メインコンテンツまでスキップ
に最終更新

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 を返します。

例​

  1. 使用例 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 |
    +-----------------------------------+
  2. スカラー値の長さ
    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 |
    +----------------------------+
  3. パスを指定する
    SELECT json_length('{"x": 1, "y": [1, 2]}', '$.y');
    +---------------------------------------------+
    | json_length('{"x": 1, "y": [1, 2]}', '$.y') |
    +---------------------------------------------+
    | 2 |
    +---------------------------------------------+
  4. 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 |
    +--------------------------+