sql >> Base de Datos >  >> RDS >> MariaDB

MariaDB JSON_OBJECT() explicado

En MariaDB, JSON_OBJECT() es una función integrada que devuelve un objeto JSON que contiene los pares clave/valor proporcionados como argumentos.

Sintaxis

La sintaxis es así:

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

La función acepta cualquier número de pares clave/valor.

La lista de clave/valor también puede estar vacía.

Ejemplo

Aquí hay un ejemplo simple para demostrar la función:

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

Resultado:

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

Sin Argumentos

Como se mencionó, la lista de argumentos puede estar vacía, en cuyo caso, se devolverá un objeto vacío:

SELECT JSON_OBJECT();

Resultado:

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

Recuento de parámetros incorrecto

Sin embargo, si proporciona argumentos, deben ser un número par de argumentos (para que cada clave tenga un valor correspondiente).

Esto es lo que sucede cuando paso solo un argumento a JSON_OBJECT() :

SELECT JSON_OBJECT("name");

Resultado:

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

Ocurre el mismo error si paso tres argumentos:

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

Resultado:

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

Y así sucesivamente…

Nombres de claves nulas

La documentación de MariaDB indica que se devuelve un error si algún nombre de clave es NULL .

Sin embargo, obtengo un resultado diferente:

SELECT JSON_OBJECT(null, null);

Resultado:

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