Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memesan Keputusan PostgreSQL Berdasarkan Susunan Nilai dalam Klausa IN?
Kawal Susunan Baris dalam Pertanyaan PostgreSQL Menggunakan Klausa IN
FasalPostgreSQL IN
, walaupun berkuasa untuk penapisan, tidak semestinya menjamin susunan baris tertentu. Jika anda perlu mendapatkan semula baris yang disusun mengikut urutan dalam senarai IN
anda, penyelesaian menggunakan binaan VALUES
(tersedia dalam PostgreSQL 8.2 dan lebih baru) menyediakan penyelesaian.
Pendekatan ini mencipta subkueri yang memetakan ID daripada senarai IN
anda kepada pesanan tersuai. Pertanyaan utama kemudiannya menyertai subkueri ini untuk memesan keputusan. Begini caranya:
<code class="language-sql">SELECT c.* FROM comments c JOIN ( VALUES (1,1), (3,2), (2,3), (4,4) ) AS x (id, ordering) ON c.id = x.id ORDER BY x.ordering;</code>
Pertanyaan ini membina jadual sementara (x
) menggunakan VALUES
. Setiap baris dalam x
memasangkan ID daripada senarai IN
dengan susunan yang diingini (ordering
). Operasi JOIN
memautkan jadual sementara ini ke jadual comments
berdasarkan lajur id
. Akhir sekali, ORDER BY x.ordering
mengisih hasil mengikut susunan yang ditakrifkan dalam konstruk VALUES
.
Kaedah ini secara berkesan membolehkan anda menyesuaikan susunan baris yang dikembalikan oleh pertanyaan yang melibatkan klausa IN
, memberikan kawalan yang tepat ke atas pembentangan data.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memesan Keputusan PostgreSQL Berdasarkan Susunan Nilai dalam Klausa IN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!