Função JSON_TABLE() do MySQL

Resumo : neste tutorial, você aprenderá como usar a JSON_TABLE()função MySQL para converter dados JSON em dados tabulares.

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

A JSON_TABLE()função permite extrair dados de documentos JSON e convertê-los em dados tabulares.

O seguinte mostra a sintaxe da JSON_TABLEfunção ():

JSON_TABLE(json_doc, path COLUMNS (column_list) [AS] alias);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

  • json_doc: este é o documento JSON do qual você deseja extrair dados.
  • path: a expressão do caminho JSON que especifica o local dos dados no json_docdocumento a serem extraídos.
  • COLUMNS(column_list): a COLUMNScláusula especifica uma lista de colunas da tabela resultante.
  • AS alias: o alias da tabela é obrigatório, mas a ASpalavra-chave é opcional.

Exemplo de função MySQL JSON_TABLE

Suponha que você tenha o seguinte documento JSON:

{ "name" : "John", 
"age" : 22}Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

O documento JSON é um objeto que possui duas chaves namee age. Para converter o documento JSON em dados tabulares, você pode usar a JSON_TABLE()função.

Primeiro, passe o documento JSON para o primeiro argumento da função:

JSON_TABLE('{"name":"John","age":22}',...)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Segundo, especifique o caminho para o qual deseja extrair os dados. Como vamos converter o documento inteiro, podemos usar a '$'expressão path:

JSON_TABLE('{"name":"John","age":22}', '$' )Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Terceiro, especifique uma lista de colunas para a tabela resultante:

JSON_TABLE(
  '{"name":"John","age":22}', 
  '$' COLUMNS(...)
)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Suponha que a tabela resultante tenha duas colunas namee ageque terá o valor das propriedades namee agedo objeto JSON.

Para fazer isso, você lista as colunas da COLUMNScláusula. Para cada coluna, você especifica o nome da coluna, o tipo de dados e a expressão do caminho JSON que deseja extrair dados do documento JSON e preenchê-los na coluna:

JSON_TABLE(
  '{"name":"John","age":22}', 
  '$' COLUMNS(
    name VARCHAR(255) PATH '$.name', 
    age INT PATH '$.age'
  )
)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Quarto, especifique um alias de tabela:

JSON_TABLE(
  '{"name":"John","age":22}', 
  '$' COLUMNS(
    name VARCHAR(255) PATH '$.name', 
    age INT PATH '$.age'
  )
) person;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Finalmente, selecione todas as colunas do conjunto de resultados da JSON_TABLE()função:

SELECT 
  * 
FROM 
  JSON_TABLE(
    '{"name":"John","age":22}', 
    '$' COLUMNS(
      name VARCHAR(255) PATH '$.name', 
      age INT PATH '$.age'
    )
  ) as person;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

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

Resumo

  • Use a JSON_TABLEfunção para converter documentos JSON em dados tabulares.

Deixe um comentário

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