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_doc
que 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 type
cláusula, a função retornará um valor com o tipo VARCHAR(512)
.
on_empty
on_empty
A cláusula determina como a função se comporta quando o caminho não localiza nenhum dado. A on_empty
cláusula aceita um dos seguintes valores:
NULL
ON
EMPTY
: A função retornaNULL
.DEFAULT
valorON
EMPTY
: a função retorna o valor.ERROR
ON
EMPTY
: a função gera um erro.
em_erro
on_error
cláusula determina o resultado quando ocorre um erro. Assume um dos seguintes valores:
NULL
ON
ERROR
: A função retornaNULL
.DEFAULT value on ERROR
: A função retorna ovalue
.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 UNSIGNED
tipo:
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 DATE
valor:
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.