Heim >Datenbank >MySQL-Tutorial >Wie kann ich PostgreSQL-Array-Indizes einfach so normalisieren, dass sie bei 1 beginnen?
Vereinfachte Methode zur Normalisierung von PostgreSQL-Array-Indizes
PostgreSQL ermöglicht, dass Array-Indizes bei jedem Wert beginnen. In einigen Fällen ist es jedoch erforderlich, ein eindimensionales Array so zu normalisieren, dass es bei Index 1 beginnt.
Die vorherige Lösung verwendete die Funktionen array_lower()
und array_upper()
, um den gewünschten Indexbereich anzugeben:
<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>
Während dieser Ansatz funktioniert, ist in PostgreSQL 9.6 eine elegantere Lösung entstanden. Die Dokumentation erlaubt nun das Weglassen von Unter- und/oder Obergrenzen für Slice-Spezifizierer. Wenn es weggelassen wird, werden fehlende Grenzen standardmäßig auf den niedrigsten oder höchsten Array-Index gesetzt.
Mit dieser Funktion wird der Normalisierungsprozess ganz einfach:
<code class="language-sql">SELECT my_arr[:];</code>
Im bereitgestellten Beispiel stellen Klammern sicher, dass die Syntax klar ist:
<code class="language-sql">SELECT ('[5:7]={1,2,3}'::int[])[:];</code>
Diese optimierte Lösung funktioniert ähnlich wie die Lösung der vorherigen Generation und ist daher die bevorzugte Methode für PostgreSQL 9.6 und höher. Für ältere Versionen (9.5 und früher) ist die Festcodierung des maximalen Array-Index immer noch der empfohlene Ansatz.
Das obige ist der detaillierte Inhalt vonWie kann ich PostgreSQL-Array-Indizes einfach so normalisieren, dass sie bei 1 beginnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!