programing

Json 어레이 열이 SQL 행으로 분할됨

copysource 2023. 1. 24. 10:09
반응형

Json 어레이 열이 SQL 행으로 분할됨

현재 DB(mariaDB 10.3)에는 데이터라고 불리며 json 배열이 포함된 열이 있습니다.

client| data
1     | '["a","b","c"]'
2     | '["k"]'

그리고 나는 그것을 부수고 싶다.

client| data
1     | "a"
1     | "b"
1     | "c"
2     | "k"

안타깝게도 MariaDB는 "언네스팅" 기능을 지원하지 않습니다.JSON_TABLE()(MySQL 8.0과는 다릅니다).

배열 요소를 열거하기 위해 숫자 표를 사용하는 전형적인 반복적 접근 방식이 남아 있습니다.배열 내의 최대 요소 수와 같은 수의 행이 있는 테이블이 있는 경우 다음과 같이 입력합니다.bigtable, 다음을 수행할 수 있습니다.

select client, json_unquote(json_extract(t.data, concat('$[', n.rn - 1, ']'))) value
from mytable t
inner join (select row_number() over() rn from bigtable) n
    on n.rn <= json_length(t.data)
order by t.client, n.rn

DB Fielen 데모:

client | 값-----: | :----1 | a1 | b1 | c2 | k

언급URL : https://stackoverflow.com/questions/64145560/json-array-column-split-into-rows-sql

반응형