Maison > Questions et réponses > le corps du texte
J'ai une trame de données donnée :
id | Liste des numéros |
---|---|
2 | [1,2,5,6,7] |
5 | [1,2,13,51,12] |
L'une des colonnes est juste l'identifiant et l'autre est une liste de nombres comme celle que j'ai obtenue du fichier JSON auparavant, existe-t-il un moyen de le convertir dans ce format en utilisant uniquement MySQL ?
id | Liste des numéros |
---|---|
2 | 1 |
2 | 2 |
2 | 5 |
2 | 6 |
2 | 7 |
5 | 1 |
5 | 2 |
5 | 13 |
5 | 51 |
5 | 12 |
Je sais que cela peut être fait facilement en utilisant Python et pandas, mais dans ce cas j'ai juste besoin d'utiliser MySQL, et je ne sais pas vraiment comment transposer une liste dans MySQL
P粉7864325792023-09-08 12:08:28
@Ruslan Pylypiuk
Âme Postgresql :
select id,regexp_split_to_table(listofnumbers,',') from test
Mysql Soul : RéférenceSQL divise la valeur en plusieurs lignes
P粉8832233282023-09-08 10:10:00
Vous pouvez utiliser 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 | Liste des numéros |
---|---|
2 | 1 |
2 | 2 |
2 | 5 |
2 | 6 |
2 | 7 |
5 | 1 |
5 | 2 |
5 | 13 |
5 | 51 |
5 | 12 |