MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

MariaDB JSON_OBJECT() expliqué

Dans MariaDB, JSON_OBJECT() est une fonction intégrée qui renvoie un objet JSON contenant les paires clé/valeur fournies comme arguments.

Syntaxe

La syntaxe ressemble à ceci :

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

La fonction accepte n'importe quel nombre de paires clé/valeur.

La liste clé/valeur peut également être vide.

Exemple

Voici un exemple simple pour illustrer la fonction :

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

Résultat :

+-----------------------------------------------+
| JSON_OBJECT("name", "Homer", "type", "Idiot") |
+-----------------------------------------------+
| {"name": "Homer", "type": "Idiot"}            |
+-----------------------------------------------+

Aucun argument

Comme mentionnéend, la liste d'arguments peut être vide, auquel cas, un objet vide sera retourné :

SELECT JSON_OBJECT();

Résultat :

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

Nombre de paramètres incorrect

Cependant, si vous fournissez des arguments, ils doivent être un nombre pair d'arguments (afin que chaque clé ait une valeur correspondante).

Voici ce qui se passe lorsque je passe un seul argument à JSON_OBJECT() :

SELECT JSON_OBJECT("name");

Résultat :

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

La même erreur se produit si je passe trois arguments :

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

Résultat :

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

Et ainsi de suite…

Noms de clé nuls

La documentation MariaDB indique qu'une erreur est renvoyée si un nom de clé est NULL .

Cependant, j'obtiens un résultat différent :

SELECT JSON_OBJECT(null, null);

Résultat :

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