반응형
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
client | 값-----: | :----1 | a1 | b1 | c2 | k
언급URL : https://stackoverflow.com/questions/64145560/json-array-column-split-into-rows-sql
반응형
'programing' 카테고리의 다른 글
MySQL의 구분자 (0) | 2023.02.03 |
---|---|
Vue.js, Vuex vs약속들 (0) | 2023.02.03 |
lodash를 angular2 + typescript 어플리케이션으로 Import하는 중 (0) | 2023.01.24 |
요청 라이브러리에서 로그 메시지를 비활성화하려면 어떻게 해야 합니까? (0) | 2023.01.24 |
CodeIgniter:컨트롤러, 액션, URL 정보를 얻는 방법 (0) | 2023.01.24 |