Função MySQL JSON_ARRAY_APPEND()

Resumo : neste tutorial, você aprenderá como usar a JSON_ARRAY_APPEND()função MySQL para adicionar um elemento a um array JSON dentro de um documento JSON.

Introdução à função JSON_ARRAY_APPEND() do MySQL

A JSON_ARRAY_APPEND()função adiciona um elemento a uma matriz JSON em um documento JSON.

Aqui está a sintaxe da JSON_ARRAY_APPEND()função:

JSON_ARRAY_APPEND(json_doc, path, value1, value2, ...)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

  • json_doc: este é o documento JSON que contém a matriz à qual você deseja anexar elementos.
  • path: o caminho para a matriz no documento JSON.
  • value1, value2, ...: os valores que você deseja anexar à matriz JSON.

Esta JSON_ARRAY_APPEND()função é útil quando você deseja atualizar dados JSON armazenados em tabelas.

Exemplos de funções JSON_ARRAY_APPEND() do MySQL

Vejamos alguns exemplos de uso da JSON_ARRAY_APPEND()função.

1) Adicionando elementos a um array JSON

O exemplo a seguir usa a JSON_ARRAY_APPEND()função para adicionar elementos a uma matriz JSON:

SELECT JSON_ARRAY_APPEND('["red","green"]', '$', 'blue');Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+---------------------------------------------------+
| JSON_ARRAY_APPEND('["red","green"]', '$', 'blue') |
+---------------------------------------------------+
| ["red", "green", "blue"]                          |
+---------------------------------------------------+
1 row in set (0.00 sec)Linguagem de código:  texto simples  ( texto simples )

Neste exemplo, acrescentamos o valor ‘blue’ ao array JSON ["red", "green"]que resulta no["red", "green", "blue"]

2) Adicionando elementos a um array JSON aninhado

O exemplo a seguir usa a JSON_ARRAY_APPEND()função para adicionar elementos a matrizes JSON aninhadas:

SELECT 
  JSON_ARRAY_APPEND(
    '{ "colors": ["red", "green"], "fonts": ["serif"] }', 
    '$.colors', 'blue'
  );Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+---------------------------------------------------------+
| json_doc                                                |
+---------------------------------------------------------+
| {"fonts": ["serif"], "colors": ["red", "green", "blue"]}|
+---------------------------------------------------------+
1 row in set (0.00 sec)Linguagem de código:  texto simples  ( texto simples )

Neste exemplo, o documento JSON possui duas matrizes: cores e fontes.

A JSON_ARRAY_APPEND()função anexa a 'blue'string ao array de cores usando o path '$.colors'.

3) Adicionando um elemento a um array JSON em uma tabela

Primeiro, crie uma nova tabela chamada decorations:

CREATE TABLE decorations(
   id INT AUTO_INCREMENT PRIMARY KEY,
   data JSON
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A seguir, insira um novo documento JSON na decorationstabela:

INSERT INTO decorations(data)
VALUES('{ "colors": ["red", "green"], "fonts": ["serif"] }');Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Em seguida, consulte os dados da decorationstabela:

SELECT * FROM decorations
WHERE id = 1;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+----+--------------------------------------------------+
| id | data                                             |
+----+--------------------------------------------------+
|  1 | {"fonts": ["serif"], "colors": ["red", "green"]} |
+----+--------------------------------------------------+
1 row in set (0.01 sec)Linguagem de código:  texto simples  ( texto simples )

Depois disso, adicione um elemento ( 'georgia') ao array de fontes usando a JSON_ARRAY_APPEND()função:

UPDATE decorations
SET data = JSON_ARRAY_APPEND(data, '$.fonts', 'georgia')
WHERE id = 1Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Por fim, consulte os dados da decorationstabela:

SELECT * FROM decorations
WHERE id = 1;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+----+-------------------------------------------------------------+
| id | data                                                        |
+----+-------------------------------------------------------------+
|  1 | {"fonts": ["serif", "georgia"], "colors": ["red", "green"]} |
+----+-------------------------------------------------------------+
1 row in set (0.00 sec)Linguagem de código:  texto simples  ( texto simples )

Resumo

  • Use a função MySQL JSON_ARRAY_APPEND()para anexar um elemento a uma matriz JSON em um documento JSON.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *