Catégories :

Fonctions de données semi-structurées et structurées (tableau/objet)

ARRAYS_TO_OBJECT

Renvoie un OBJECT qui contient les clés spécifiées par un ARRAY d’entrée et les valeurs spécifiées par un autre ARRAY d’entrée.

Syntaxe

ARRAYS_TO_OBJECT( <key_array> , <value_array> )
Copy

Arguments

key_array

ARRAY de valeurs VARCHAR qui spécifient les clés du nouvel OBJECT.

value_array

ARRAY de valeurs du nouvel OBJECT. Ce ARRAY doit être de la même longueur que key_array. Les valeurs de ce ARRAY doivent correspondre aux clés de key_array.

Renvoie

La fonction renvoie une valeur du type OBJECT. L’OBJECT contient les clés et les valeurs spécifiées par les ARRAYs d’entrée.

Notes sur l’utilisation

  • Si l’un des éléments de key_array n’est pas une chaîne, la fonction signale l’erreur suivante :

    215002 (22000): Key supplied for ARRAYS_TO_OBJECT does not have string type
    
  • key_array et value_array doivent être de même longueur. Sinon, la fonction signale l’erreur suivante :

    215001 (22000): Key array and value array had unequal lengths in ARRAYS_TO_OBJECT
    
  • Si un élément de key_array est NULL, cette clé et la valeur correspondante sont omises dans l’OBJECT renvoyé.

    Si la clé n’est pas NULL, mais que l’élément correspondant dans value_array est NULL, la clé et la valeur NULL sont incluses dans l’OBJECT renvoyé.

  • L’OBJECT renvoyé ne conserve pas nécessairement l’ordre d’origine des paires clé-valeur.

  • Cette fonction ne prend pas en charge un type structuré comme argument d’entrée.

Exemples

L’exemple suivant renvoie un OBJECT qui contient des paires clé-valeur spécifiées par deux ARRAYs d’entrée :

SELECT ARRAYS_TO_OBJECT(['key1', 'key2', 'key3'], [1, 2, 3]);
Copy
+-------------------------------------------------------+
| ARRAYS_TO_OBJECT(['KEY1', 'KEY2', 'KEY3'], [1, 2, 3]) |
|-------------------------------------------------------|
| {                                                     |
|   "key1": 1,                                          |
|   "key2": 2,                                          |
|   "key3": 3                                           |
| }                                                     |
+-------------------------------------------------------+

Dans l’exemple suivant, le ARRAY de clés comprend une valeur NULL. Cette clé et la valeur correspondante sont omises dans l’OBJECT renvoyé.

SELECT ARRAYS_TO_OBJECT(['key1', NULL, 'key3'], [1, 2, 3]);
Copy
+-----------------------------------------------------+
| ARRAYS_TO_OBJECT(['KEY1', NULL, 'KEY3'], [1, 2, 3]) |
|-----------------------------------------------------|
| {                                                   |
|   "key1": 1,                                        |
|   "key3": 3                                         |
| }                                                   |
+-----------------------------------------------------+

Dans l’exemple suivant, le ARRAY de valeurs comprend une valeur NULL. Cette valeur et la clé correspondante sont incluses dans l’OBJECT renvoyé.

SELECT ARRAYS_TO_OBJECT(['key1', 'key2', 'key3'], [1, NULL, 3]);
Copy
+----------------------------------------------------------+
| ARRAYS_TO_OBJECT(['KEY1', 'KEY2', 'KEY3'], [1, NULL, 3]) |
|----------------------------------------------------------|
| {                                                        |
|   "key1": 1,                                             |
|   "key2": null,                                          |
|   "key3": 3                                              |
| }                                                        |
+----------------------------------------------------------+