Isih hasil mengikut senarai nilai IN dalam PostgreSQL
Dalam PostgreSQL, klausa ORDER BY
biasanya bertindak pada lajur dalam jadual. Walau bagaimanapun, ia juga boleh digunakan untuk menguatkuasakan pesanan berdasarkan rujukan luaran (seperti klausa IN).
Untuk memastikan hasil pertanyaan sepadan dengan susunan senarai nilai IN, anda boleh menggunakan binaan VALUES()
yang diperkenalkan dalam PostgreSQL 8.2.
Penyelesaian:
Buat jadual sementara atau ungkapan jadual biasa (CTE) untuk memetakan nilai IN ke susunan isihan yang diingini:
<code class="language-sql">WITH Ordering AS ( VALUES (1,1), (3,2), (2,3), (4,4) )</code>
Sertai jadual utama ke jadual sementara ini dan aliaskan kepada x:
<code class="language-sql">SELECT c.* FROM comments c JOIN Ordering x ON c.id = x.id ORDER BY x.ordering</code>
Dengan merujuk lajur ORDER BY
dalam jadual sementara dalam klausa ordering
, keputusan akan diisih mengikut susunan yang dinyatakan dalam klausa IN.
Atas ialah kandungan terperinci Bagaimana Mengisih Keputusan Pertanyaan PostgreSQL mengikut Susunan Nilai dalam Klausa IN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!