sql >> Databáze >  >> RDS >> MariaDB

MariaDB JSON_COMPACT() vysvětleno

V MariaDB, JSON_COMPACT() je vestavěná funkce, která odstraní všechny zbytečné mezery z dokumentu JSON, aby byl co nejkratší a nejkompaktnější, a vrátí výsledek.

To se může hodit, když potřebujete uložit data JSON do databázového sloupce a nechcete, aby dokumenty JSON zabíraly více místa, než je nutné.

Pro opačný efekt (tj. pro úpravu dokumentu JSON přidáním odsazení a jeho rozložením na více řádků) použijte JSON_DETAILED() funkce.

Syntaxe

Syntaxe vypadá takto:

JSON_COMPACT(json_doc)

Kde json_doc je dokument JSON.

Příklad

Zde je příklad k demonstraci.

SET @json_document = '{"a": [0, 1], "b": [2, 3]}';

SELECT 
    JSON_COMPACT(@json_document) AS Compact,
    @json_document AS Original;

Výsledek:

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

V tomto případě první sloupec obsahuje zkomprimovanou verzi a druhý sloupec obsahuje původní dokument JSON před zkomprimováním.

Větší dokument JSON

Zde je příklad s mírně větším, upraveným dokumentem 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);

Výsledek:

{"_id":1,"name":"Wag","details":{"type":"Dog","weight":20,"awards":{"Florida Dog Awards":"Top Dog","New York Marathon":"Fastest Dog","Sumo 2020":"Biggest Dog"}}}

Nulové argumenty

Pokud je argument NULL , výsledkem je NULL :

SELECT JSON_COMPACT(null);

Výsledek:

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

Nesprávný počet parametrů

Pokud neposkytnete žádné argumenty, dojde k chybě:

SELECT JSON_COMPACT();

Výsledek:

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

Stejného výsledku dosáhneme, pokud poskytneme příliš mnoho argumentů:

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

Výsledek:

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

  1. Převod výsledků Select do skriptu Insert - SQL Server

  2. Mohu uložit binární řetězec do sloupce CLOB

  3. Najděte počet sloupců v tabulce

  4. Průvodce pro CTE v SQL Server