Pengisihan keutamaan nilai medan tertentu dalam MySQL
Dalam MySQL, anda boleh memaparkan rekod dengan nilai medan tertentu secara keutamaan. Contohnya, jika jadual anda mengandungi id, nama dan lajur keutamaan, anda mungkin mahu memaparkan rekod dengan name="core" dahulu, tanpa mengira keutamaannya.
Anda boleh menggunakan fungsi FIELD MySQL untuk mencapai ini:
Isih penuh semua nilai:
<code class="language-sql">SELECT id, name, priority FROM mytable ORDER BY FIELD(name, "core", "board", "other");</code>
Ini akan mengisih hasil dalam susunan yang dinyatakan dalam parameter FIELD(), dengan "teras" dahulu, "papan" seterusnya dan "lain" yang terakhir.
Hanya nilai "Teras" diutamakan:
Jika anda hanya mahu mengutamakan "teras" dan tidak mengambil berat tentang susunan nilai lain:
<code class="language-sql">SELECT id, name, priority FROM mytable ORDER BY FIELD(name, "core") DESC;</code>
Tempahan DESC akan memastikan bahawa baris "teras" didahulukan.
Gabungkan pengisihan tersuai dan pengisihan biasa:
Sebagai alternatif, anda boleh menggabungkan pengisihan tersuai mengikut "teras" dengan pengisihan biasa mengikut medan lain:
<code class="language-sql">SELECT id, name, priority FROM mytable ORDER BY FIELD(name, "core") DESC, priority;</code>
Ini akan mengutamakan baris "teras" dan kemudian mengisih baris yang tinggal mengikut keutamaan.
Nota:
Atas ialah kandungan terperinci Bagaimana Memesan Keputusan MySQL dengan Nilai Medan Tertentu Pertama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!