Heim > Fragen und Antworten > Hauptteil
Ich habe einen bestimmten Datenrahmen:
id | Nummernliste |
---|---|
2 | [1,2,5,6,7] |
5 | [1,2,13,51,12] |
Eine der Spalten ist nur die ID und die andere ist eine Liste von Zahlen, wie ich sie zuvor aus der JSON-Datei erhalten habe. Gibt es eine Möglichkeit, sie nur mit MySQL in dieses Format zu konvertieren?
id | Nummernliste |
---|---|
2 | 1 |
2 | 2 |
2 | 5 |
2 | 6 |
2 | 7 |
5 | 1 |
5 | 2 |
5 | 13 |
5 | 51 |
5 | 12 |
Ich weiß, dass dies mit Python und Pandas problemlos möglich ist, aber in diesem Fall muss ich nur MySQL verwenden, und ich weiß nicht wirklich, wie ich eine Liste in MySQL umsetzen soll
P粉7864325792023-09-08 12:08:28
@Ruslan Pylypiuk
Postgresql 灵魂:
select id,regexp_split_to_table(listofnumbers,',') from test
Mysql灵魂:参考SQL将值拆分为多行
P粉8832233282023-09-08 10:10:00
您可以使用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 | 数字列表 |
---|---|
2 | 1 |
2 | 2 |
2 | 5 |
2 | 6 |
2 | 7 |
5 | 1 |
5 | 2 |
5 | 13 |
5 | 51 |
5 | 12 |