반응형
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 |