sql >> Database >  >> RDS >> MariaDB

MariaDB JSON_OBJECT() uitgelegd

In MariaDB, JSON_OBJECT() is een ingebouwde functie die een JSON-object retourneert dat de sleutel/waarde-paren bevat die als argumenten zijn opgegeven.

Syntaxis

De syntaxis gaat als volgt:

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

De functie accepteert een willekeurig aantal sleutel/waarde-paren.

De sleutel/waardenlijst kan ook leeg zijn.

Voorbeeld

Hier is een eenvoudig voorbeeld om de functie te demonstreren:

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

Resultaat:

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

Geen argumenten

Zoals vermeld, kan de lijst met argumenten leeg zijn, in welk geval een leeg object wordt geretourneerd:

SELECT JSON_OBJECT();

Resultaat:

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

Onjuist aantal parameters

Als u echter argumenten opgeeft, moeten deze een even aantal argumenten zijn (zodat elke sleutel een overeenkomstige waarde heeft).

Dit is wat er gebeurt als ik slechts één argument doorgeef aan JSON_OBJECT() :

SELECT JSON_OBJECT("name");

Resultaat:

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

Dezelfde fout treedt op als ik drie argumenten doorgeef:

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

Resultaat:

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

En zo verder...

Null-sleutelnamen

In de MariaDB-documentatie staat dat er een fout wordt geretourneerd als een sleutelnaam NULL is .

Ik krijg echter een ander resultaat:

SELECT JSON_OBJECT(null, null);

Resultaat:

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


  1. PostgreSQL controleren met pgAudit

  2. Hoe stel ik de tijdzone van MySQL in?

  3. Hoe krijg ik het huidige jaar met SQL op Oracle?

  4. SQL Server 2017-back-up -1