Rumah >pangkalan data >tutorial mysql >Bagaimana Mengutamakan Nilai Medan Tertentu Apabila Memesan Keputusan Pangkalan Data dalam MySQL?
Isih hasil pangkalan data MySQL: utamakan nilai medan tertentu
Dalam operasi jadual pangkalan data, adalah keperluan biasa untuk mengutamakan rekod dengan nilai medan tertentu. Sebagai contoh, pertimbangkan jadual dengan lajur dan data berikut:
id | name | priority |
---|---|---|
1 | core | 10 |
2 | core | 9 |
3 | other | 8 |
4 | board | 7 |
5 | board | 6 |
6 | core | 4 |
Tugasnya ialah menyusun semula keputusan berdasarkan medan priority
, tetapi memberi keutamaan kepada baris yang name
bersamaan dengan "teras". Output yang dikehendaki adalah seperti berikut:
id | name | priority |
---|---|---|
6 | core | 4 |
2 | core | 9 |
1 | core | 10 |
5 | board | 6 |
4 | board | 7 |
3 | other | 8 |
Dalam MySQL, pengisihan ini boleh dicapai menggunakan fungsi FIELD()
. Berikut ialah beberapa cara:
Isih sepenuhnya semua nilai:
<code class="language-sql">SELECT id, name, priority FROM mytable ORDER BY FIELD(name, "core", "board", "other");</code>
Pertanyaan ini akan mengisih hasil mengikut susunan yang dinyatakan dalam fungsi FIELD()
, memberi keutamaan kepada nilai yang muncul dahulu.
Hanya "teras" akan diutamakan:
<code class="language-sql">SELECT id, name, priority FROM mytable ORDER BY FIELD(name, "core") DESC;</code>
Pertanyaan ini mengutamakan baris dengan DESC
sama dengan "teras" dengan menggunakan name
, tanpa mengira nilai medannya yang lain.
Mengekalkan susunan isihan nilai lain:
<code class="language-sql">SELECT id, name, priority FROM mytable ORDER BY FIELD(name, "core") DESC, priority;</code>
Pertanyaan ini mengutamakan baris "teras" terlebih dahulu menggunakan FIELD()
dan kemudian mengisih baris yang tinggal dalam susunan priority
biasa.
Perlu ambil perhatian bahawa fungsi FIELD()
mengembalikan indeks berasaskan satu nilai padanan, atau sifar jika nilai tidak ditemui. Oleh itu, DESC
perlu digunakan melainkan semua nilai yang mungkin ditentukan.
Atas ialah kandungan terperinci Bagaimana Mengutamakan Nilai Medan Tertentu Apabila Memesan Keputusan Pangkalan Data dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!