sql >> Databáze >  >> RDS >> MariaDB

MariaDB JSON_OBJECT() Vysvětleno

V MariaDB, JSON_OBJECT() je vestavěná funkce, která vrací objekt JSON obsahující páry klíč/hodnota poskytnuté jako argumenty.

Syntaxe

Syntaxe vypadá takto:

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

Funkce přijímá libovolný počet párů klíč/hodnota.

Seznam klíč/hodnota může být také prázdný.

Příklad

Zde je jednoduchý příklad pro demonstraci funkce:

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

Výsledek:

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

Žádné argumenty

Jak bylo zmíněno, seznam argumentů může být prázdný, v takovém případě bude vrácen prázdný objekt:

SELECT JSON_OBJECT();

Výsledek:

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

Nesprávný počet parametrů

Pokud však argumenty zadáte, musí to být sudý počet argumentů (takže každý klíč má odpovídající hodnotu).

Zde je to, co se stane, když předám pouze jeden argument do JSON_OBJECT() :

SELECT JSON_OBJECT("name");

Výsledek:

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

Ke stejné chybě dojde, když předám tři argumenty:

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

Výsledek:

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

A tak dále…

Nulové názvy klíčů

Dokumentace MariaDB uvádí, že pokud je jakýkoli název klíče NULL, vrátí se chyba .

Dostávám však jiný výsledek:

SELECT JSON_OBJECT(null, null);

Výsledek:

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


  1. Zkontrolujte typ parametru funkce oddílu v SQL Server (T-SQL)

  2. Automatické škálování s Amazon Aurora Serverless

  3. UnicodeEncodeError:Kodek 'latin-1' nemůže kódovat znak

  4. Použití pg_dump k získání příkazů vložení pouze z jedné tabulky v databázi