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 중국어 웹사이트의 기타 관련 기사를 참조하세요!