집 >데이터 베이스 >MySQL 튜토리얼 >PostgreSQL 배열 첨자를 1부터 시작하도록 쉽게 정규화하려면 어떻게 해야 합니까?
PostgreSQL 배열 첨자를 정규화하는 단순화된 방법
PostgreSQL에서는 배열 첨자가 모든 값에서 시작될 수 있습니다. 그러나 어떤 경우에는 1차원 배열을 인덱스 1에서 시작하도록 정규화해야 합니다.
이전 솔루션에서는 array_lower()
및 array_upper()
함수를 사용하여 원하는 아래 첨자 범위를 지정했습니다.
<code class="language-sql">SELECT ('[5:7]={1,2,3}'::int[])[array_lower('[5:7]={1,2,3}'::int[], 1):array_upper('[5:7]={1,2,3}'::int[], 1)]</code>
이 접근 방식이 작동하는 동안 PostgreSQL 9.6에서는 더욱 우아한 솔루션이 등장했습니다. 이제 문서에서는 슬라이스 지정자의 하한 및/또는 상한을 생략할 수 있습니다. 생략하면 누락된 경계는 기본적으로 가장 낮거나 가장 높은 배열 인덱스로 설정됩니다.
이 기능을 사용하면 정규화 프로세스가 매우 간단해집니다.
<code class="language-sql">SELECT my_arr[:];</code>
제공된 예에서 대괄호는 구문이 명확한지 확인합니다.
<code class="language-sql">SELECT ('[5:7]={1,2,3}'::int[])[:];</code>
이 최적화된 솔루션은 이전 세대 솔루션과 유사하게 작동하므로 PostgreSQL 9.6 이상에서 선호되는 방법입니다. 이전 버전(9.5 이하)의 경우 최대 배열 첨자를 하드코딩하는 것이 여전히 권장되는 접근 방식입니다.
위 내용은 PostgreSQL 배열 첨자를 1부터 시작하도록 쉽게 정규화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!