Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memesan Keputusan Pertanyaan SQL dengan Berbilang Nilai dalam Urutan Tertentu?
Isih berbilang nilai dalam susunan tertentu
Dalam SQL, hasil pertanyaan boleh diisih mengikut berbilang nilai, tetapi hanya jika nilai ini mesti disertakan dalam klausa ORDER BY. Jika anda cuba mengisih mengikut berbilang nilai yang tidak disertakan dalam klausa ORDER BY (seperti dalam contoh yang disediakan), pertanyaan tidak akan mengembalikan hasil.
Untuk mengisih berbilang nilai dalam susunan tertentu, adalah disyorkan untuk menggunakan pernyataan CASE:
<code class="language-sql">... WHERE x_field IN ('f', 'p', 'i', 'a') ... ORDER BY CASE x_field WHEN 'f' THEN 1 WHEN 'p' THEN 2 WHEN 'i' THEN 3 WHEN 'a' THEN 4 ELSE 5 -- 对IN子句中未包含的值的回退。例如:x_field = 'b' END, id</code>
Dalam contoh ini, pernyataan CASE memberikan keutamaan angka kepada setiap nilai dalam lajur x_field ('f' ialah 1, 'p' ialah 2 dan seterusnya). Hasilnya kemudian diisih berdasarkan keutamaan ini dan kemudian mengikut lajur id untuk memastikan pengisihan unik dalam setiap tahap keutamaan.
Dengan menggunakan pernyataan CASE, anda boleh menentukan susunan isihan yang diingini untuk berbilang nilai. Dalam contoh ini, keputusan akan diisih dalam susunan 'f', 'p', 'i' dan 'a', seperti yang dinyatakan dalam pernyataan CASE.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memesan Keputusan Pertanyaan SQL dengan Berbilang Nilai dalam Urutan Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!