1. 程式人生 > 其它 >MySQL8 把JSON欄位,直接轉換為多行資料1

MySQL8 把JSON欄位,直接轉換為多行資料1

1. t_course_put_apply表中的put_targets列為json型別。查詢出來的示例資料如下:

 

select put_targets from t_course_put_apply t WHERE t.id = 2022031120200011002;

 

查詢結果:

{

"region": ["431200"],

"school": ["2022030410000002527", "2022030410000002529", "2022030410000002530", "2022030410000002531", "2022030410000002532", "2022030410000002533", "2022030410000002534", "2022030410000002535", "2022030410000002537", "2022030410000002538"]

}

 

2. 通過一個sql,想把查詢結果轉換為多行資料。

 

SELECT

cte_put.school_id, cte_put.region_id

FROM

t_course_put_apply t,

JSON_TABLE(put_targets,

'$' COLUMNS ( nested PATH '$.school[*]' COLUMNS ( school_id varchar(32) PATH '$') ,

nested PATH '$.region[*]' COLUMNS ( region_id varchar(32) PATH '$') )) AS cte_put

WHERE

t.id = 2022031120200011002;

 

查詢結果:

school_id

region_id

2022030410000002527

 

2022030410000002529

 

2022030410000002530

 

2022030410000002531

 

2022030410000002532

 

2022030410000002533

 

2022030410000002534

 

2022030410000002535

 

2022030410000002537

 

2022030410000002538

 
 

431200