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

MariaDB JSON_MERGE()の説明

    MariaDBでは、JSON_MERGE() は、2つ以上のJSONドキュメントをマージして結果を返す組み込み関数です。

    JSON_MERGE() 関数は非推奨になりました。今後の問題を回避するには、JSON_MERGE_PATCH()を使用する必要があります。 代わりに機能します。 JSON_MERGE_PATCH() 関数は、RFC7396に準拠したJSON_MERGE()の代替品です。 。

    構文

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

    JSON_MERGE(json_doc, json_doc[, json_doc] ...)

    json_docの場所 マージするJSONドキュメントです。

    実例を示します。

    SELECT JSON_MERGE('{"name":"Wag"}', '{"type":"Dog"}');

    結果:

    +------------------------------------------------+
    | JSON_MERGE('{"name":"Wag"}', '{"type":"Dog"}') |
    +------------------------------------------------+
    | {"name": "Wag", "type": "Dog"}                 |
    +------------------------------------------------+

    2つのドキュメントが1つにマージされていることがわかります。

    3つのドキュメントをマージする例を次に示します。

    SELECT JSON_MERGE(
        '{ "name" : "Wag" }', 
        '{ "type" : "Dog" }',
        '{ "score" : [ 9, 7, 8 ] }'
        ) AS Result;

    結果:

    +----------------------------------------------------+
    | Result                                             |
    +----------------------------------------------------+
    | {"name": "Wag", "type": "Dog", "score": [9, 7, 8]} |
    +----------------------------------------------------+

    配列

    JSON_MERGE()の違いの1つ およびJSON_MERGE_PATCH() そのJSON_MERGE() 配列をマージします(JSON_MERGE_PATCH() しません):

    SELECT JSON_MERGE(
        '[1,2,3]', 
        '[4,5,6]'
        ) AS Result;

    結果:

    +--------------------+
    | Result             |
    +--------------------+
    | [1, 2, 3, 4, 5, 6] |
    +--------------------+

    JSON_MERGE_PATCH()でこれを試みます その結果、2番目の配列のみが返されます。

    ヌル引数

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

    SELECT 
        JSON_MERGE('{"a":1}', null) AS a,
        JSON_MERGE(null, '{"a":1}') AS b,
        JSON_MERGE(null, null) AS c;

    結果:

    +------+------+------+
    | a    | b    | c    |
    +------+------+------+
    | NULL | NULL | NULL |
    +------+------+------+

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

    引数なしで関数を呼び出すと、エラーが発生します:

    SELECT JSON_MERGE();

    結果:

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

    引数を1つだけ指定した場合も同じです:

    SELECT JSON_MERGE('{"a":1}');

    結果:

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

    1. PostgreSQLでアイドル状態の接続を自動的に閉じる方法は?

    2. SQLサーバーで日付をフロアする

    3. MySQLでのOracleJDeveloperスニペットの使用

    4. MySQLに保存された関数とプロシージャを作成して実行する方法