sql怎么提取多个并列json

avatar
作者
筋斗云
阅读量:2

在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属性。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!