Rumah > pangkalan data > tutorial mysql > Bagaimana Mengutamakan Nilai Medan Tertentu Apabila Memesan Keputusan Pangkalan Data dalam MySQL?

Bagaimana Mengutamakan Nilai Medan Tertentu Apabila Memesan Keputusan Pangkalan Data dalam MySQL?

DDD
Lepaskan: 2025-01-14 09:00:41
asal
646 orang telah melayarinya

How to Prioritize Specific Field Values When Ordering Database Results in 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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan