Mengisih Keputusan MySQL Menggunakan Nilai ID Tetap
Soalan: Bagaimanakah saya boleh memesan baris dalam MySQL menggunakan set yang telah ditetapkan daripada nilai ID, memastikan bahawa rekod diambil dalam susunan tertentu (cth., ID=1, 5, 4, 3)?
Latar Belakang: Pengguna ingin melaksanakan pengisihan dinamik dalam pangkalan data mereka, dengan susunan isihan berubah setiap lima minit untuk mengelakkan isu penomboran. Walau bagaimanapun, mereka mahukan kaedah untuk mengekalkan susunan hasil yang betul, walaupun semasa pengisihan dikemas kini.
Jawapan:
Anda boleh mencapai ini menggunakan klausa ORDER BY dengan Fungsi FIELD:
SELECT * FROM table ORDER BY FIELD(ID, 1, 5, 4, 3);
Fungsi FIELD mengembalikan kedudukan nilai yang diberikan dalam senarai rentetan. Dengan menggunakannya dalam klausa ORDER BY, anda mengisih hasil dengan berkesan berdasarkan susunan yang dinyatakan dalam parameter fungsi. Dalam kes ini, rekod akan dikembalikan dalam susunan ID=1, 5, 4, 3.
Penjelasan:
Fungsi FIELD merawat senarai Nilai ID sebagai tatasusunan dan memberikan indeks kepada setiap nilai. Fungsi mengembalikan indeks nilai yang sepadan dengan lajur ID dalam setiap baris. Dengan memesan mengikut indeks yang dikembalikan, baris diisih dalam susunan yang sama seperti nilai ID yang ditentukan.
Pertimbangan Tambahan:
Walaupun kaedah ini berkesan untuk mengekalkan susunan isihan, penomboran masih perlu dipertimbangkan dengan teliti. Jika susunan isihan berubah semasa penomboran, keputusan mungkin berbeza antara halaman. Untuk mengurangkan isu ini, adalah disyorkan untuk menyimpan susunan semasa dalam sesi atau mekanisme lain yang berterusan merentas permintaan halaman.
Atas ialah kandungan terperinci Bagaimana Mengisih Keputusan MySQL mengikut Susunan ID yang Ditetapkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!