Rumah > Soal Jawab > teks badan
Saya mempunyai bingkai data yang diberikan:
id | Senarai Nombor |
---|---|
2 | [1,2,5,6,7] |
5 | [1,2,13,51,12] |
Salah satu lajur hanyalah id dan satu lagi ialah senarai nombor seperti yang saya dapat daripada fail JSON sebelum ini, adakah cara untuk menukarnya kepada format ini hanya menggunakan MySQL?
id | Senarai Nombor |
---|---|
2 | 1 |
2 | 2 |
2 | 5 |
2 | 6 |
2 | 7 |
5 | 1 |
5 | 2 |
5 | 13 |
5 | 51 |
5 | 12 |
Saya tahu ia boleh dilakukan dengan mudah menggunakan Python dan panda, tetapi dalam kes ini saya hanya perlu menggunakan MySQL, dan saya tidak tahu bagaimana untuk menukar senarai dalam MySQL
P粉7864325792023-09-08 12:08:28
@Ruslan Pylypiuk
Jiwa postgresql:
select id,regexp_split_to_table(listofnumbers,',') from test
Mysql Soul: RujukanSQL membahagikan nilai kepada beberapa baris
P粉8832233282023-09-08 10:10:00
Anda boleh menggunakan json_table()
create table myTable(id int, listofnumbers varchar(200)); insert into myTable values(2, '[1, 2, 5, 6, 7]'); insert into myTable values(5, '[1, 2, 13, 51, 12]');
select t.id, j.listofnumbers from myTable t join json_table( t.listofnumbers, '$[*]' columns (listofnumbers varchar(50) path '$') ) j;
id | Senarai nombor |
---|---|
2 | 1 |
2 | 2 |
2 | 5 |
2 | 6 |
2 | 7 |
5 | 1 |
5 | 2 |
5 | 13 |
5 | 51 |
5 | 12 |