sql >> Database teknologi >  >> RDS >> MariaDB

MariaDB JSON_COMPACT() Forklaret

I MariaDB, JSON_COMPACT() er en indbygget funktion, der fjerner alle unødvendige mellemrum fra et JSON-dokument, så det bliver så kort og kompakt som muligt, og returnerer resultatet.

Dette kan være praktisk, når du skal gemme JSON-data i en databasekolonne, og du ikke ønsker, at JSON-dokumenterne skal bruge mere plads end nødvendigt.

For den modsatte effekt (dvs. at forskønne et JSON-dokument ved at tilføje indrykninger og sprede det over flere linjer), skal du bruge JSON_DETAILED() funktion.

Syntaks

Syntaksen ser sådan ud:

JSON_COMPACT(json_doc)

Hvor json_doc er JSON-dokumentet.

Eksempel

Her er et eksempel til at demonstrere.

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

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

Resultat:

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

I dette tilfælde indeholder den første kolonne den komprimerede version, og den anden kolonne indeholder det originale JSON-dokument, før det blev komprimeret.

Større JSON-dokument

Her er et eksempel med et lidt større, smukt 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);

Resultat:

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

Nul-argumenter

Hvis argumentet er NULL , resultatet er NULL :

SELECT JSON_COMPACT(null);

Resultat:

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

Forkert parameterantal

Angivelse af ingen argumenter resulterer i en fejl:

SELECT JSON_COMPACT();

Resultat:

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

Vi får det samme resultat, hvis vi giver for mange argumenter:

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

Resultat:

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

  1. SQL Server Unik sammensat nøgle af to felter med andet felt automatisk stigning

  2. Analyse af I/O-ydeevne for SQL Server

  3. Søg i alle felter i alle tabeller for en bestemt værdi (Oracle)

  4. Fordele ved at lære nye DB-systemer