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

MariaDB JSON_COMPACT()の説明

    MariaDBでは、JSON_COMPACT() は、JSONドキュメントから不要なスペースをすべて削除する組み込み関数です。これにより、JSONドキュメントは可能な限り短くコンパクトになり、結果が返されます。

    これは、JSONデータをデータベース列に格納する必要があり、JSONドキュメントが必要以上のスペースを使い果たしたくない場合に便利です。

    逆の効果(つまり、インデントを追加して複数行に分散することでJSONドキュメントを美しくする)には、JSON_DETAILED()を使用します。 機能。

    構文

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

    JSON_COMPACT(json_doc)

    json_docの場所 JSONドキュメントです。

    実例を示します。

    SET @json_document = '{"a": [0, 1], "b": [2, 3]}';
    
    SELECT 
        JSON_COMPACT(@json_document) AS Compact,
        @json_document AS Original;

    結果:

    +-----------------------+----------------------------+
    | Compact               | Original                   |
    +-----------------------+----------------------------+
    | {"a":[0,1],"b":[2,3]} | {"a": [0, 1], "b": [2, 3]} |
    +-----------------------+----------------------------+

    この場合、最初の列には圧縮されたバージョンが含まれ、2番目の列には圧縮される前の元のJSONドキュメントが含まれます。

    より大きなJSONドキュメント

    これは、少し大きくてきれいな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_COMPACT(@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"}}}

    ヌル引数

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

    SELECT JSON_COMPACT(null);

    結果:

    +--------------------+
    | JSON_COMPACT(null) |
    +--------------------+
    | NULL               |
    +--------------------+

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

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

    SELECT JSON_COMPACT();

    結果:

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

    提供する引数が多すぎる場合も同じ結果が得られます:

    SELECT JSON_COMPACT('{ "a": 1}', '{ "b": 1 }');

    結果:

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

    1. mysqlデータベースからのBLOBイメージを表示するためにPHPページが必要です

    2. Spring Batch ORA-08177:単一のジョブを実行している場合、このトランザクションへのアクセスをシリアル化できません、SERIALIZED分離レベル

    3. SQLServerで「最終変更」列を作成する

    4. 大したこと:SQL Server 2016 Service Pack 1