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

MariaDB JSON_OBJECT() erklärt

In MariaDB, JSON_OBJECT() ist eine integrierte Funktion, die ein JSON-Objekt zurückgibt, das die als Argumente bereitgestellten Schlüssel/Wert-Paare enthält.

Syntax

Die Syntax lautet wie folgt:

JSON_OBJECT([key, value[, key, value] ...]) 

Die Funktion akzeptiert eine beliebige Anzahl von Schlüssel/Wert-Paaren.

Die Schlüssel/Wert-Liste kann auch leer sein.

Beispiel

Hier ist ein einfaches Beispiel, um die Funktion zu demonstrieren:

SELECT JSON_OBJECT("name", "Homer", "type", "Idiot"); 

Ergebnis:

+---------------------------------------------- -+| JSON_OBJECT("Name", "Homer", "Typ", "Idiot") |+------------------------------ ------------------+| {"Name":"Homer", "Typ":"Idiot"} |+------------------------------- ----------------+

Keine Argumente

Wie erwähnt, kann die Argumentliste leer sein, in diesem Fall wird ein leeres Objekt zurückgegeben:

SELECT JSON_OBJECT(); 

Ergebnis:

+---------------+| JSON_OBJECT() |+---------------+| {} |+---------------+

Falsche Parameteranzahl

Wenn Sie jedoch Argumente angeben, muss es sich um eine gerade Anzahl von Argumenten handeln (damit jeder Schlüssel einen entsprechenden Wert hat).

Folgendes passiert, wenn ich nur ein Argument an JSON_OBJECT() übergebe :

SELECT JSON_OBJECT("name"); 

Ergebnis:

FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion „JSON_OBJECT“

Derselbe Fehler tritt auf, wenn ich drei Argumente übergebe:

SELECT JSON_OBJECT("name", "Homer", "type"); 

Ergebnis:

FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion „JSON_OBJECT“

Und so weiter…

Null-Schlüsselnamen

Die MariaDB-Dokumentation gibt an, dass ein Fehler zurückgegeben wird, wenn ein Schlüsselname NULL ist .

Allerdings bekomme ich ein anderes Ergebnis:

SELECT JSON_OBJECT(null, null); 

Ergebnis:

+-------------------------+| JSON_OBJECT(null, null) |+-------------------------+| {"":null} |+--------------------+