Função JSON_REPLACE() do MySQL

Resumo : neste tutorial, você aprenderá como usar a JSON_REPLACE()função MySQL para substituir valores existentes em um documento JSON e retornar o documento atualizado.

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

A JSON_REPLACE()função substitui os valores existentes em um documento JSON e retorna o documento atualizado.

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

JSON_REPLACE(json_doc, path, value[, path, val] ...)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

  • json_doc: este é o documento JSON cujos dados você deseja substituir.
  • path: o  caminho JSON  que especifica as posições onde  json_doc você deseja atualizar o novo valor.
  • value: o valor que você deseja atualizar.

A JSON_REPLACE()função retorna o documento JSON atualizado. Ele retorna NULLse algum argumento for NULL.

Se você tiver vários pares caminho/valor, a função irá processá-los um por um, começando da esquerda. Ele usa o resultado da primeira avaliação para o próximo par caminho/valor.

A função apenas substitui o valor do documento existente por um novo valor para um caminho existente no documento. Se o caminho não existir, a função não terá efeito.

Exemplos de funções JSON_REPLACE() do MySQL

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

1) Substituindo um valor existente

O exemplo a seguir usa a JSON_REPLACE()função para substituir um valor existente por um novo valor em um documento JSON:

SELECT 
  JSON_REPLACE(
    '{"name": "Jane Doe", "age": 22}', '$.name', 
    'Jane Smith'
  ) result;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-----------------------------------+
| result                            |
+-----------------------------------+
| {"age": 22, "name": "Jane Smith"} |
+-----------------------------------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

2) Atualizando objetos aninhados

O exemplo a seguir usa a JSON_REPLACE()função para atualizar valores em objetos aninhados:

SELECT 
  JSON_REPLACE(
    '{"person": {"name": "John", "address": {"city": "New York"}}}', 
    '$.person.address.city', 'Los Angeles'
  ) result;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+------------------------------------------------------------------+
| result                                                           |
+------------------------------------------------------------------+
| {"person": {"name": "John", "address": {"city": "Los Angeles"}}} |
+------------------------------------------------------------------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Neste exemplo, usamos a JSON_REPLACE()função para atualizar a cidade dentro do objeto aninhado.

3) Exemplo de tratamento de caminho inexistente

Se você tentar substituir um valor em um caminho que não existe no documento JSON, a JSON_REPLACE()função simplesmente deixará o documento inalterado. Por exemplo:

SELECT 
  JSON_REPLACE(
    '{"name": "John", "age": 22}', '$.city', 
    'London'
  ) result;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-----------------------------+
| result                      |
+-----------------------------+
| {"age": 22, "name": "John"} |
+-----------------------------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

4) Substituindo por vários pares de caminho/valor

O exemplo a seguir usa a JSON_REPLACE()função para atualizar o nome e uma cidade em uma única operação:

SELECT 
  JSON_REPLACE(
    '{"name": "Jane Doe", "age": 25, "city": "New York"}', 
    '$.name', 'Jane Smith', '$.age', 26, '$.city', 
    'Los Angeles'
  ) result;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+----------------------------------------------------------+
| result                                                   |
+----------------------------------------------------------+
| {"age": 26, "city": "Los Angeles", "name": "Jane Smith"} |
+----------------------------------------------------------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Neste exemplo, a JSON_REPLACE()função substitui primeiro o nome e usa o documento atualizado para substituir a idade e usa o documento modificado para substituir a cidade.

Resumo

  • Use a JSON_REPLACE()função MySQL para substituir valores existentes em um documento JSON.

Deixe um comentário

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