Função MySQL JSON_VALUE()

Resumo : neste tutorial, você aprenderá como usar a JSON_VALUE()função MySQL para extrair um valor e convertê-lo para um tipo desejado.

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

A JSON_VALUE()função permite extrair um valor em um caminho em um documento JSON e, opcionalmente, converter o valor para um tipo desejado.

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

JSON_VALUE(json_doc, path [RETURNING type] [on_empty] [on_error])Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A JSON_VALUE()função possui os seguintes parâmetros e cláusulas opcionais:

json_doc

json_doc: este é o documento JSON do qual você deseja extrair o valor.

caminho

path: esta é a expressão do caminho JSON que especifica o valor json_docque você deseja extrair.

Tipo de RETORNO

RETURNING type: esta cláusula permite converter o valor extraído para um tipo desejado, incluindo float, double, decimal, assinado, não assinado, data, data e hora, ano, char e json.

Se você omitir a RETURNING typecláusula, a função retornará um valor com o tipo VARCHAR(512).

on_empty

on_emptyA cláusula determina como a função se comporta quando o caminho não localiza nenhum dado. A on_emptycláusula aceita um dos seguintes valores:

  • NULL ON EMPTY: A função retorna NULL.
  • DEFAULTvalor ON EMPTY: a função retorna o valor.
  • ERROR ON EMPTY: a função gera um erro.

em_erro

on_errorcláusula determina o resultado quando ocorre um erro. Assume um dos seguintes valores:

  • NULL ON ERROR: A função retorna NULL.
  • DEFAULT value on ERROR: A função retorna o value.
  • ERROR ON ERROR: a função gera um erro.

Observe que a JSON_VALUE() função está disponível desde o MySQL 8.0.21.

Exemplos de funções JSON_VALUE() do MySQL

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

1) Extraindo um valor de string

O exemplo a seguir usa a JSON_VALUE()função para extrair uma string de um documento JSON:

SELECT 
  JSON_VALUE(
    '{"name": "John Doe","age": 22, "date_of_birth":"1990-12-15"}', 
    "$.name"
  ) name;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+----------+
| name     |
+----------+
| John Doe |
+----------+
1 row in set (0.01 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

2) Extraindo um número

O exemplo a seguir usa a JSON_VALUE()função para extrair um valor e convertê-lo em um valor do UNSIGNEDtipo:

SELECT 
  JSON_VALUE(
    '{"name": "John Doe","age": 22, "date_of_birth":"1990-12-15"}', 
    "$.age" RETURNING UNSIGNED
  ) age;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+------+
| age  |
+------+
|   22 |
+------+
1 row in set (0.01 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

3) Extraindo uma data

O exemplo a seguir usa a JSON_VALUE()função para extrair um valor e convertê-lo em um DATEvalor:

SELECT 
  JSON_VALUE(
    '{"name": "John Doe","age": 22, "date_of_birth":"1990-12-15"}', 
    "$.date_of_birth" RETURNING DATE
  ) date_of_birth;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+---------------+
| date_of_birth |
+---------------+
| 1990-12-15    |
+---------------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Resumo

  • Use a JSON_VALUE()função para extrair um valor e convertê-lo em um tipo específico.

Deixe um comentário

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