집 >데이터 베이스 >MySQL 튜토리얼 >PostgreSQL의 JSON 데이터 내에서 배열 요소를 효율적으로 쿼리하는 방법은 무엇입니까?
PostgreSQL의 JSON 데이터에서 배열 요소 검색
PostgreSQL의 JSON 데이터 유형(버전 9.3에서 도입)은 복잡한 데이터 구조의 저장 및 관리를 단순화합니다. 그러나 JSON 배열 내의 특정 요소를 효율적으로 쿼리하는 것은 까다로울 수 있습니다. 이 가이드는 특히 객체 배열 내의 'src' 필드에 초점을 맞춰 배열 요소를 검색하는 효과적인 전략을 보여줍니다.
PostgreSQL 9.4 이상에 최적화된 접근 방식(jsonb)
PostgreSQL 9.4 이상 버전은 우수한 jsonb
데이터 유형을 제공하여 향상된 성능과 기능을 제공합니다. 가장 효율적인 방법은 @>
:jsonb_array_elements()
와 함께
<code class="language-sql">SELECT * FROM reports WHERE data->'objects' @> '[{"src":"foo.png"}]';</code>
이 간결한 쿼리는 '객체' 배열에 지정된 기준과 일치하는 요소가 포함되어 있는지 직접 확인합니다.
PostgreSQL 9.3 이상용 솔루션(json)
PostgreSQL 9.3 이상(json
유형 사용)의 경우 json_array_elements()
함수가 측면 조인 내에서 사용됩니다.
<code class="language-sql">SELECT data::text, obj FROM reports r, json_array_elements(r.data#>'{objects}') obj WHERE obj->>'src' = 'foo.png';</code>
이 접근 방식은 배열의 중첩을 해제하여 개별 요소 검사를 허용합니다.
중요 사항:
unnest
호출 또는 측면 조인이 필요합니다.위 내용은 PostgreSQL의 JSON 데이터 내에서 배열 요소를 효율적으로 쿼리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!