mysql8.0 提取json数据转为行

仅适用于mysql8.0,之前的版本不支持JSON_TABLE函数

数据结构:

idnamejsonarr
1张三[{"daystr": "2023-12-01","score": "53"},{"daystr": "2023-12-02","score": "78"}]
2李四[{"daystr": "2023-12-01","score": "65"},{"daystr": "2023-12-02","score": "68"}]

SQL:

SELECTid,name,t.daystr as '日期',t.v as '成绩数据'
FROMtableName as temp,JSON_TABLE(temp.jsonarr,'$[*]' COLUMNS (daystr varchar(20) PATH '$.daystr ',v json PATH '$')) t 

查询结果:

idname日期成绩数据
1张三2023-12-01{"daystr": "2023-12-01","score": "53"}
1张三2023-12-02{"daystr": "2023-12-02","score": "78"}
2李四2023-12-01{"daystr": "2023-12-01","score": "65"}
2李四2023-12-02{"daystr": "2023-12-02","score": "68"}