Heim > Datenbank > MySQL-Tutorial > Wie kann ich PostgreSQL-Array-Indizes einfach so normalisieren, dass sie bei 1 beginnen?

Wie kann ich PostgreSQL-Array-Indizes einfach so normalisieren, dass sie bei 1 beginnen?

DDD
Freigeben: 2025-01-09 12:12:42
Original
362 Leute haben es durchsucht

How Can I Easily Normalize PostgreSQL Array Subscripts to Start at 1?

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:

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)]
Nach dem Login kopieren

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:

SELECT my_arr[:];
Nach dem Login kopieren

Im bereitgestellten Beispiel stellen Klammern sicher, dass die Syntax klar ist:

SELECT ('[5:7]={1,2,3}'::int[])[:];
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage