Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memesan Rekod PostgreSQL mengikut Tarikh dengan Nilai NULL Pertama?
Rekod pangkalan data PostgreSQL diisih mengikut tarikh, nilai nol dahulu
Dalam PostgreSQL, selalunya perlu mengisih hasil pertanyaan dalam tertib menaik mengikut medan tarikh/masa (cth. last_updated) sambil memastikan rekod nilai nol diutamakan.
PostgreSQL menyediakan ORDER BY
pengubah suai untuk NULLS FIRST | LAST
ungkapan untuk mencapai tujuan ini. Secara lalai, NULLS FIRST
digunakan dalam tertib menurun (DESC), menyebabkan nilai nol diisih terakhir. Untuk mengisih nilai NULL dahulu dalam tertib menaik (ASC), anda boleh menggunakan sintaks berikut:
<code class="language-sql">... ORDER BY last_updated NULLS FIRST</code>
Untuk membolehkan indeks menyokong pertanyaan ini, indeks harus sepadan dengan susunan isihan:
<code class="language-sql">CREATE INDEX foo_idx ON tbl (last_updated DESC NULLS LAST);</code>
PostgreSQL boleh mengendalikan indeks terbalik dengan cekap, menjadikannya kelihatan seperti berikut:
<code class="language-sql">CREATE INDEX foo_idx ON tbl (last_updated);</code>
Walau bagaimanapun, untuk beberapa rancangan pertanyaan, kedudukan nilai NULL boleh menjejaskan prestasi. Untuk mendapatkan maklumat lanjut tentang topik ini, sila lihat yang berikut:
Atas ialah kandungan terperinci Bagaimana untuk Memesan Rekod PostgreSQL mengikut Tarikh dengan Nilai NULL Pertama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!