sourcecode

MySQL에서 목록을 열고 전치하는 방법

codebag 2023. 6. 12. 21:21
반응형

MySQL에서 목록을 열고 전치하는 방법

주어진 데이터 프레임이 있습니다.

이드 숫자 목록
2 [1, 2, 5, 6, 7]
5 [1, 2, 13, 51, 12]

한 열은 단지 id이고 다른 열은 제가 이전에 JSON 파일에서 얻은 것과 같은 번호 목록입니다. MySQL만 사용하여 이 형식으로 만들 수 있는 방법이 있습니까?

이드 숫자 목록
2 1
2 2
2 5
2 6
2 7
5 1
5 2
5 13
5 51
5 12

Python과 Panda를 사용하여 쉽게 수행할 수 있다는 것을 알고 있지만, 그런 경우에는 MySQL만 사용하면 되고 MySQL의 목록을 그렇게 바꾸는 방법을 잘 모릅니다.

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;
이드 숫자 목록
2 1
2 2
2 5
2 6
2 7
5 1
5 2
5 13
5 51
5 12

만지작거리다

@루슬란 필리피우크

사후 gresql 솔루션:

select 
id,regexp_split_to_table(listofnumbers,',')
from test

Mysql soultion : SQL 분할 값을 여러 행에 참조합니다.

언급URL : https://stackoverflow.com/questions/74595376/how-to-open-and-transpose-list-in-mysql

반응형