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 decorations
tabela:
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 decorations
tabela:
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 = 1
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Por fim, consulte os dados da decorations
tabela:
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.