MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

MariaDB JSON_COMPACT() erklärt

In MariaDB, JSON_COMPACT() ist eine integrierte Funktion, die alle unnötigen Leerzeichen aus einem JSON-Dokument entfernt, damit es so kurz und kompakt wie möglich ist, und das Ergebnis zurückgibt.

Dies kann praktisch sein, wenn Sie JSON-Daten in einer Datenbankspalte speichern müssen und nicht möchten, dass die JSON-Dokumente mehr Speicherplatz als nötig verbrauchen.

Für den gegenteiligen Effekt (d. h. um ein JSON-Dokument zu verschönern, indem Sie Einzüge hinzufügen und es über mehrere Zeilen verteilen), verwenden Sie JSON_DETAILED() Funktion.

Syntax

Die Syntax lautet wie folgt:

JSON_COMPACT(json_doc)

Wobei json_doc ist das JSON-Dokument.

Beispiel

Hier ist ein Beispiel zur Veranschaulichung.

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

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

Ergebnis:

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

In diesem Fall enthält die erste Spalte die komprimierte Version und die zweite Spalte das ursprüngliche JSON-Dokument vor der Komprimierung.

Größeres JSON-Dokument

Hier ist ein Beispiel mit einem etwas größeren, verschönerten JSON-Dokument.

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);

Ergebnis:

{"_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-Argumente

Wenn das Argument NULL ist , ist das Ergebnis NULL :

SELECT JSON_COMPACT(null);

Ergebnis:

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

Falsche Parameteranzahl

Wenn Sie keine Argumente angeben, wird ein Fehler ausgegeben:

SELECT JSON_COMPACT();

Ergebnis:

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

Wir erhalten dasselbe Ergebnis, wenn wir zu viele Argumente angeben:

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

Ergebnis:

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