Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menyesuaikan Pesanan Isih dalam Klausa ORDER BY MySQL untuk Nilai Tertentu?

Bagaimanakah Saya Boleh Menyesuaikan Pesanan Isih dalam Klausa ORDER BY MySQL untuk Nilai Tertentu?

Susan Sarandon
Susan Sarandonasal
2024-12-13 09:18:10474semak imbas

How Can I Customize Sorting Order in MySQL's ORDER BY Clause for Specific Values?

Menyesuaikan Pesanan dalam MySQL ORDER BY Clause

Apabila mengisih data dalam MySQL, klausa ORDER BY membolehkan anda menyesuaikan susunan isihan melebihi pilihan lalai menaik atau menurun. Satu cabaran biasa ialah mentakrifkan keutamaan pengisihan khusus untuk berbilang nilai dalam lajur.

Soalan:

Pertimbangkan jadual berikut:

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

Bagaimanakah kita boleh mengisih jadual ini mengikut Bahasa (ENU pertama, JPN kedua, DAN terakhir) dan kemudian dengan menaik ID?

Jawapan:

MySQL menyediakan fungsi FIELD() yang membolehkan pesanan isihan tersuai. Ia mengambil nilai dan menyemak kedudukannya dalam senarai tertentu. Menggunakan fungsi ini, kita boleh mentakrifkan keutamaan pengisihan yang diingini seperti berikut:

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

Pertanyaan ini akan mengembalikan data dalam susunan berikut:

a, d, b, e, c, f, dll.

Pertimbangan:

  1. FIELD() boleh mengurangkan kemudahalihan SQL kerana DBMS lain mungkin tidak menyokongnya.
  2. Untuk senarai panjang nilai, pertimbangkan untuk mencipta jadual berasingan dengan lajur susunan isihan dan sertainya pada pertanyaan untuk mengisih.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyesuaikan Pesanan Isih dalam Klausa ORDER BY MySQL untuk Nilai Tertentu?. 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