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!