Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengisih dengan NULLS LAST dalam Pertanyaan Django Menggunakan Postgresql?

Bagaimana untuk Mengisih dengan NULLS LAST dalam Pertanyaan Django Menggunakan Postgresql?

Patricia Arquette
Lepaskan: 2024-12-30 22:03:15
asal
904 orang telah melayarinya

How to Sort with NULLS LAST in Django Queries Using Postgresql?

Mengendalikan Nilai NULL dalam Pertanyaan Django dengan "NULLS LAST"

Mengisih model dalam Postgresql selalunya memerlukan pengendalian nilai NULL dengan berkesan. Django menyediakan kaedah yang mudah untuk menggabungkan pengoptimuman "NULLS LAST" ke dalam pertanyaan, membolehkan anda mengawal susunan nilai nol.

Pertimbangkan senario berikut:

Masalah:
Anda ingin mengisih model menggunakan pilihan "NULLS LAST" Postgresql untuk bergerak nilai nol hingga akhir urutan tertib. Walau bagaimanapun, percubaan anda menggunakan tambahan(order_by=('-price', 'NULLS LAST')) gagal dengan ralat "Tidak dapat menyelesaikan kata kunci 'NULLS LAST' ke dalam medan."

Penyelesaian:
Untuk mencapai pesanan "NULLS LAST" dalam Django, gunakan ungkapan F dan tetapkan parameter nulls_last dalam kaedah desc() ekspresi medan. Contohnya:

MyModel.objects.all().order_by(F('price').desc(nulls_last=True))
Salin selepas log masuk

Sintaks ini memanfaatkan API ungkapan Django, yang membolehkan anda membina penapis kompleks dan kriteria pengisihan menggunakan ungkapan medan (dalam kes ini, F('harga')), dan menyesuaikan gelagat pengisihan menggunakan parameter seperti nulls_last.

Adalah penting untuk ambil perhatian bahawa fungsi ini telah diperkenalkan dalam Django 1.11. Rujuk dokumentasi Django untuk versi berkaitan yang anda gunakan, kerana mungkin terdapat variasi dalam sintaks atau ciri yang disokong.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih dengan NULLS LAST dalam Pertanyaan Django Menggunakan Postgresql?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan