>데이터 베이스 >MySQL 튜토리얼 >MySQL의 JSON 배열에서 행을 효율적으로 추출하려면 어떻게 해야 합니까?

MySQL의 JSON 배열에서 행을 효율적으로 추출하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-08 17:18:12575검색

How Can I Efficiently Extract Rows from JSON Arrays in MySQL?

MySQL의 JSON 배열에서 행 추출

MySQL 5.7에는 강력한 JSON 기능이 도입되어 JSON 데이터를 원활하게 조작할 수 있습니다. 그러나 JSON 배열 요소를 행으로 추출하는 것은 어려운 것으로 입증되었습니다.

문제

JSON 배열을 행 기반 구조로 변환하는 것은 MySQL의 장애물로 남아 있습니다. 옵션은 JSON_EXTRACT()를 사용하여 개별 요소를 수동으로 추출하거나 여러 쿼리를 통합하는 것으로 제한됩니다. 이 접근 방식은 번거롭고 오류가 발생하기 쉽습니다.

해결책: MySQL 8 및 JSON_TABLE

MySQL 8에는 JSON 데이터 작업을 위한 포괄적인 솔루션인 JSON_TABLE이 도입되었습니다. JSON 배열을 테이블 행으로 직접 변환할 수 있습니다.

SELECT *
FROM
JSON_TABLE(
'[5, 6, 7]',
"$[*]"
COLUMNS(
Value INT PATH "$"
)
) data;

JSON_TABLE을 범용 분할기로 사용

행 추출 외에도 JSON_TABLE은 다목적 분할자로 사용될 수 있습니다. MySQL에는 없는 기능인 문자열 분할기입니다. 구분된 문자열을 JSON으로 변환하면 해당 구성 요소를 쉽게 분리할 수 있습니다.

set @delimited = 'a,b,c';

SELECT *
FROM
JSON_TABLE(
CONCAT('["', REPLACE(@delimited, ',', '", "'), '"]'),
"$[*]"
COLUMNS(
Value varchar(50) PATH "$"
)
) data;

결론

JSON_TABLE은 MySQL 사용자에게 JSON 변환에 대한 간소화된 접근 방식을 제공합니다. 행으로 배열하므로 복잡한 합집합이나 수동 추출이 필요하지 않습니다. 또한 편리한 문자열 분할 도구 역할을 하여 MySQL 기능의 현저한 격차를 해소합니다.

위 내용은 MySQL의 JSON 배열에서 행을 효율적으로 추출하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.