Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengekalkan Susunan Nilai dalam Fungsi `IN()` untuk Isih dalam MySQL?

Bagaimana untuk Mengekalkan Susunan Nilai dalam Fungsi `IN()` untuk Isih dalam MySQL?

Patricia Arquette
Patricia Arquetteasal
2024-11-12 18:07:01811semak imbas

How to Preserve the Order of Values in `IN()` Function for Sorting in MySQL?

MySQL: Memelihara Susunan Fungsi IN() dalam Isih

Apabila mendapatkan semula rekod menggunakan fungsi IN(), ia mungkin wajar disimpan susunan nilai yang dimasukkan ke dalam fungsi dalam hasil yang diisih. Secara lalai, MySQL menyusun keputusan berdasarkan mekanisme pengisihan dalaman pangkalan data.

Penyelesaian:

Untuk mengisih hasil mengikut susunan nilai dalam fungsi IN() , gunakan fungsi FIELD. Fungsi FIELD mengembalikan kedudukan rentetan pertama dalam senarai rentetan yang tinggal.

Pertimbangkan pertanyaan berikut:

SELECT id, name
FROM mytable
WHERE name IN ('B', 'A', 'D', 'E', 'C')
ORDER BY FIELD(name, 'B', 'A', 'D', 'E', 'C')

Dalam pertanyaan ini, fungsi FIELD digunakan dalam ORDER BY klausa. Ia memastikan bahawa keputusan diisih dalam susunan yang sama seperti nilai dalam fungsi IN(): 'B', 'A', 'D', 'E', 'C'.

Pengoptimuman Prestasi:

Walaupun fungsi FIELD boleh digunakan untuk mencapai pengisihan yang diingini, adalah disyorkan untuk mempertimbangkan untuk mengindeks lajur yang mewakili susunan isihan yang diingini. Dengan mencipta indeks pada lajur ini, MySQL boleh mengoptimumkan proses pengisihan, menghasilkan prestasi yang lebih baik.

Atas ialah kandungan terperinci Bagaimana untuk Mengekalkan Susunan Nilai dalam Fungsi `IN()` untuk Isih dalam MySQL?. 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