Standardisierung von PostgreSQL-Array-Indizes, um bei 1 zu beginnen
Die Flexibilität von PostgreSQL ermöglicht es, dass Array-Indizes bei einer beliebigen Zahl beginnen. Allerdings ist es oft von Vorteil, Arrays so zu normalisieren, dass sie bei Index 1 beginnen.
Ältere Methode
Vor Postgres 9.6 war eine Problemumgehung erforderlich:
<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>
Vereinfachter Ansatz (Postgres 9.6 und höher)
Postgres 9.6 führte eine prägnantere und effizientere Methode ein:
<code class="language-sql">SELECT my_arr[:];</code>
Für explizite Array-Literale verwenden Sie aus Gründen der Klarheit Klammern:
<code class="language-sql">SELECT ('[5:7]={1,2,3}'::int[])[:];</code>
Dieser optimierte Ansatz bietet eine Leistung, die mit der älteren Methode vergleichbar ist, und ist daher die empfohlene Lösung für Postgres 9.6 und nachfolgende Versionen.
Das obige ist der detaillierte Inhalt vonWie kann ich PostgreSQL-Array-Indizes so normalisieren, dass sie bei 1 beginnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!