반응형
json 필드를 여러 행으로 분할하는 방법
1개 이상의 요소로 데이터를 저장할 수 있는 JSON 필드가 테이블에 있습니다(예: "{a: 1, b:2}").
MariaDB 쿼리를 생성하여 다음 결과를 가져오려면 어떻게 해야 합니까?
A B C
===========================
1 2 NULL
NULL 1 2
물론 "NULL" 값은 변경할 수 있지만 JSON 배열은 각 요소의 행으로 표시됩니다.
MySQL에 새로운 버전의 JSON_TABLE 기능이 있는 것으로 알고 있습니다.MariaDB에 상당하는 것을 찾고 있습니다.
몇 가지 조사를 한 결과, 많은 사람들이 미리 정의된 숫자(0~who_know)의 표를 사용하고 있는 것을 알 수 있었습니다.예를 들어, 1 ~200의 필드(n)가 1개 있는 숫자(분할 발생 횟수에 따라 다름)가 호출된 테이블입니다.
이를 작동시키는 조회는 다음과 같습니다.
rawData가 행으로 분할하는 json 배열로서 「이벤트」를 가지는 JSON 문자열이라고 가정합니다.
SELECT
logEvent, JSON_EXTRACT(logEvent, "$.author_name"), JSON_EXTRACT(logEvent, "$.text")
FROM
(
SELECT
JSON_EXTRACT(
rawData,
CONCAT('$.events[', num.n, ']')
) AS logEvent
FROM
numbers num
INNER JOIN logsRaw
) AS a
언급URL : https://stackoverflow.com/questions/54061887/how-to-split-json-field-into-multi-rows
반응형
'itsource' 카테고리의 다른 글
PHP의 count() 함수는 O(1)입니까, O(n)입니까? (0) | 2022.09.30 |
---|---|
URL 문자열에서 파라미터를 가져오려면 어떻게 해야 하나요? (0) | 2022.09.30 |
MySQL Workbench를 사용하여 MySQL 데이터베이스 백업을 수행하는 방법 (0) | 2022.09.30 |
JavaScript에서 HTML 엔티티의 이스케이프를 해제하시겠습니까? (0) | 2022.09.30 |
REST 웹 서비스를 위한 Spring 4 vs Jersey (0) | 2022.09.30 |