Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menentukan Pesanan Isih Tersuai dalam MySQL Menggunakan FIELD()?

Bagaimana untuk Menentukan Pesanan Isih Tersuai dalam MySQL Menggunakan FIELD()?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-27 03:59:10409semak imbas

How to Define a Custom Sorting Order in MySQL Using FIELD()?

Memesan Data dengan Pesanan Tersuai dalam MySQL

Dalam MySQL, mentakrifkan susunan isihan tersuai boleh dilakukan dengan fungsi FIELD(). Fungsi ini menilai nilai medan berbanding senarai nilai dan mengembalikan nilai berangka berdasarkan kedudukan nilai dalam senarai. Dengan memanfaatkan fungsi ini, anda boleh menentukan susunan yang diingini untuk nilai tertentu.

Pertimbangkan jadual berikut:

ID    Language    Text
0    ENU         a
0    JPN         b
0    DAN         c
1    ENU         d
1    JPN         e
1    DAN         f

Untuk mengembalikan baris yang diisih mengikut Bahasa dan ID menaik, dengan ENU sebagai keutamaan pertama, diikuti oleh JPN, dan kemudian DAN, anda boleh menggunakan ORDER BY berikut klausa:

ORDER BY FIELD(Language,'ENU','JPN','DAN'), ID

Pertanyaan ini mengarahkan MySQL untuk mengisih hasil mengikut medan Bahasa, menggunakan nilai 'ENU', 'JPN' dan 'DAN' sebagai susunan pengisihan tersuai. Baris dengan nilai 'ENU' dalam medan Bahasa akan muncul dahulu, diikuti dengan 'JPN', dan akhirnya yang mempunyai 'DAN'. Dalam setiap kumpulan Bahasa, baris akan disusun mengikut ID menaik.

Adalah penting untuk ambil perhatian bahawa:

  • Fungsi FIELD() mungkin mengehadkan kemudahalihan SQL anda, seperti DBMS lain mungkin tidak menyokongnya.
  • Untuk mengisih senarai nilai yang lebih besar, biasanya lebih cekap untuk mencipta jadual berasingan dengan lajur susun atur dan sertainya dengan pertanyaan anda untuk membuat pesanan.

Atas ialah kandungan terperinci Bagaimana untuk Menentukan Pesanan Isih Tersuai dalam MySQL Menggunakan FIELD()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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