json sql

sql怎么提取多个并列json

小亿
145
2023-11-28 12:47:00
栏目: 云计算

在SQL中提取多个并列JSON可以使用JSON_TABLE函数。

JSON_TABLE函数用于将JSON数据转换为关系表。它的语法如下:

JSON_TABLE(json_column, '$[*]' COLUMNS (column1 data_type PATH '$.key1', column2 data_type PATH '$.key2', ...) ) AS table_alias

其中,json_column是包含多个并列JSON的列名,'$[*]'是JSON路径表达式,表示提取所有的JSON元素。COLUMNS子句后面是列的定义,可以指定每个列的名称、数据类型以及JSON路径。

下面是一个示例,假设有一个表格students,其中包含一个名为info的JSON列,该列包含多个并列的JSON对象,每个对象都有name和age属性:

CREATE TABLE students (
  id INT PRIMARY KEY,
  info JSON
);

INSERT INTO students (id, info) VALUES (1, '[{"name": "Alice", "age": 20}, {"name": "Bob", "age": 21}, {"name": "Charlie", "age": 22}]');

SELECT s.id, jt.name, jt.age
FROM students s
CROSS JOIN JSON_TABLE(s.info, '$[*]' COLUMNS (
  name VARCHAR(50) PATH '$.name',
  age INT PATH '$.age'
)) AS jt;

通过CROSS JOIN和JSON_TABLE函数,我们可以将每个并列的JSON对象转换为关系表格,然后使用普通的SQL查询语句进行操作。在上面的示例中,我们从students表中提取了每个学生的id、name和age属性。

0
看了该问题的人还看了