Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memesan Keputusan Pertanyaan PostgreSQL Berdasarkan Susunan Nilai dalam Senarai IN?

Bagaimana untuk Memesan Keputusan Pertanyaan PostgreSQL Berdasarkan Susunan Nilai dalam Senarai IN?

Barbara Streisand
Barbara Streisandasal
2025-01-19 11:06:11783semak imbas

How to Order PostgreSQL Query Results Based on the Order of Values in an IN List?

Isih hasil pertanyaan PostgreSQL berdasarkan susunan nilai dalam senarai IN

Dalam PostgreSQL, struktur IN dalam klausa WHERE membolehkan anda menentukan set nilai yang sepadan dengan lajur. Walau bagaimanapun, menyusun baris hasil berdasarkan susunan nilai dalam senarai IN boleh menjadi satu cabaran.

Nasib baik, PostgreSQL 8.2 memperkenalkan struktur VALUES(), yang membolehkan anda mencipta jadual maya yang mengandungi nilai dan susunan tertentu. Ini membolehkan kami mengisih hasil berdasarkan susunan nilai dalam senarai IN.

Untuk mencapai ini, gunakan sintaks berikut:

<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>

Dalam contoh ini, kami menggunakan struktur VALUES() untuk mencipta jadual maya bernama "x". Setiap baris dalam jadual maya ini mewakili nilai dalam senarai IN dan susunannya yang sepadan. Kami kemudian menyertai jadual "ulasan" dengan jadual "x" berdasarkan lajur "id" dan mengisih hasil mengikut lajur "pesanan". Ini memastikan bahawa baris yang diambil disusun mengikut susunan yang dinyatakan dalam senarai IN: (1,3,2,4).

Atas ialah kandungan terperinci Bagaimana untuk Memesan Keputusan Pertanyaan PostgreSQL Berdasarkan Susunan Nilai dalam Senarai IN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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