sql >> データベース >  >> RDS >> MariaDB

MariaDB JSON_DEPTH()の説明

    MariaDBでは、JSON_DEPTH() は、JSONドキュメントの深さを確認できる組み込み関数です。

    JSONドキュメントを引数として受け入れ、ドキュメントの最大深度を返します。

    構文

    構文は次のようになります:

    JSON_DEPTH(json_doc)

    json_docの場所 深さを返すJSONドキュメントです。

    実例を示します。

    SELECT JSON_DEPTH('{ "name": "Wag" }');

    結果:

    +---------------------------------+
    | JSON_DEPTH('{ "name": "Wag" }') |
    +---------------------------------+
    |                               2 |
    +---------------------------------+

    この場合、深さは2です。 。

    スカラー値と空のオブジェクト/配列

    スカラー値または空の配列またはオブジェクトの深さは1

    SELECT 
        JSON_DEPTH('{}'),
        JSON_DEPTH('[]'),
        JSON_DEPTH(1);

    結果:

    +------------------+------------------+---------------+
    | JSON_DEPTH('{}') | JSON_DEPTH('[]') | JSON_DEPTH(1) |
    +------------------+------------------+---------------+
    |                1 |                1 |             1 |
    +------------------+------------------+---------------+

    より深いJSONドキュメント

    これは、深さが4のJSONドキュメントを使用する例です。 :

    SET @json_document = '
        { 
            "_id" : 1, 
            "name" : "Wag", 
            "details" : {
                "type" : "Dog", 
                "weight" : 20,
                "awards" : { 
                    "Florida Dog Awards" : "Top Dog", 
                    "New York Marathon" : "Fastest Dog", 
                    "Sumo 2020" : "Biggest Dog"
                }
            }
        }
    ';
    SELECT JSON_DEPTH(@json_document);

    結果:

    +----------------------------+
    | JSON_DEPTH(@json_document) |
    +----------------------------+
    |                          4 |
    +----------------------------+

    ヌル引数

    引数がNULLの場合 、結果はNULLです :

    SELECT JSON_DEPTH(null);

    結果:

    +------------------+
    | JSON_DEPTH(null) |
    +------------------+
    |             NULL |
    +------------------+

    無効なJSON

    無効なJSONを渡すと、NULLになります 警告付き:

    SELECT JSON_DEPTH('{1}');

    結果:

    +-------------------+
    | JSON_DEPTH('{1}') |
    +-------------------+
    |              NULL |
    +-------------------+
    1 row in set, 1 warning (0.000 sec)

    警告を見てみましょう:

    SHOW WARNINGS;

    結果:

    +---------+------+--------------------------------------------------------------------------------+
    | Level   | Code | Message                                                                        |
    +---------+------+--------------------------------------------------------------------------------+
    | Warning | 4038 | Syntax error in JSON text in argument 1 to function 'json_depth' at position 2 |
    +---------+------+--------------------------------------------------------------------------------+

    パラメータカウントが正しくありません

    引数を指定しないとエラーが発生します:

    SELECT JSON_DEPTH();

    結果:

    ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_DEPTH'

    提供する引数が多すぎる場合も同じです:

    SELECT JSON_DEPTH('{"a": 1}', 2);

    結果:

    ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_DEPTH'

    1. 都市の列ごとに従業員の名前を配置する必要があります

    2. すべてのパッケージでテーブルや列を検索するためのクエリ

    3. iPerfを使用したネットワーク負荷テスト

    4. SQL 2000/2005でOracleデータベースにリンクされたサーバーをどのようにセットアップしますか?