Rumah >pangkalan data >tutorial mysql >Bagaimanakah CASE Expression Order SQL Results by Specific Values?
Gunakan ungkapan CASE untuk mengisih hasil SQL mengikut nilai tertentu
Apabila mendapatkan semula data daripada jadual, anda selalunya perlu mengisih hasil berdasarkan berbilang nilai dalam susunan tertentu. Dalam kes ini, tugasnya adalah untuk mengekstrak rekod daripada jadual berdasarkan kekunci yang ditentukan dan medan tidak diindeks dan mengisih keputusan dengan berbilang nilai dalam urutan tertentu.
Untuk memenuhi keperluan ini, ungkapan CASE boleh digunakan untuk mencapai susunan yang diingini dan bukannya menggunakan sintaks ORDER BY tradisional. Sintaks ungkapan CASE adalah seperti berikut:
<code class="language-sql">CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 ... ELSE valueN END</code>
Dalam contoh ini, ungkapan CASE digunakan untuk menetapkan susunan khusus kepada setiap nilai dalam x_field. Sebagai contoh, nilai 'f', 'p', 'i' dan 'a' diberikan nombor urutan 1, 2, 3 dan 4 masing-masing. Mana-mana nilai lain yang tidak sepadan dengan nilai khusus ini akan diberikan urutan lalai nombor 5.
Berikut ialah contoh bagaimana ungkapan CASE boleh ditambah pada pertanyaan SQL:
<code class="language-sql">SELECT * FROM table 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>
Dengan menggunakan ungkapan CASE, keputusan akan diisih mengikut nombor urutan yang ditetapkan, dengan berkesan mengisih nilai 'f', 'p', 'i' dan 'a' dalam urutan yang ditentukan.
Atas ialah kandungan terperinci Bagaimanakah CASE Expression Order SQL Results by Specific Values?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!