PostgreSQL の配列インデックスを 1 から標準化する
PostgreSQL の柔軟性により、配列インデックスを任意の番号から開始できます。 ただし、インデックス 1 から始まるように配列を正規化すると、多くの場合有益です。
古い方法
Postgres 9.6 より前では、次の回避策が必要でした。
<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>
簡略化されたアプローチ (Postgres 9.6 以降)
Postgres 9.6 では、より簡潔で効率的なメソッドが導入されました。
<code class="language-sql">SELECT my_arr[:];</code>
明示的な配列リテラルの場合は、わかりやすくするために括弧を使用します。
<code class="language-sql">SELECT ('[5:7]={1,2,3}'::int[])[:];</code>
この合理化されたアプローチは、古い方法と同等のパフォーマンスを提供するため、Postgres 9.6 以降のバージョンに推奨されるソリューションです。
以上がPostgreSQL 配列の添字を 1 から始まるように正規化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。