Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menormalkan Subskrip Array PostgreSQL dengan Mudah untuk Bermula pada 1?
Kaedah ringkas untuk menormalkan subskrip tatasusunan PostgreSQL
PostgreSQL membenarkan subskrip tatasusunan bermula daripada sebarang nilai. Walau bagaimanapun, dalam beberapa kes adalah perlu untuk menormalkan tatasusunan satu dimensi untuk bermula pada indeks 1.
Penyelesaian sebelumnya menggunakan fungsi array_lower()
dan array_upper()
untuk menentukan julat subskrip yang diingini:
<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>
Sementara pendekatan ini berfungsi, penyelesaian yang lebih elegan telah muncul dalam PostgreSQL 9.6. Dokumentasi kini membenarkan mengabaikan sempadan bawah dan/atau atas untuk penentu hirisan. Jika ditinggalkan, sempadan yang hilang akan lalai kepada indeks tatasusunan terendah atau tertinggi.
Dengan ciri ini, proses penormalan menjadi agak mudah:
<code class="language-sql">SELECT my_arr[:];</code>
Dalam contoh yang disediakan, kurungan memastikan sintaks adalah jelas:
<code class="language-sql">SELECT ('[5:7]={1,2,3}'::int[])[:];</code>
Penyelesaian yang dioptimumkan ini berprestasi serupa dengan penyelesaian generasi sebelumnya, menjadikannya kaedah pilihan untuk PostgreSQL 9.6 dan lebih baru. Untuk versi lama (9.5 dan lebih awal), pengekodan keras subskrip tatasusunan maksimum masih merupakan pendekatan yang disyorkan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menormalkan Subskrip Array PostgreSQL dengan Mudah untuk Bermula pada 1?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!