Mengekalkan Pesanan dalam Pertanyaan "IN" MySQL
Apabila menggunakan pengendali "IN" untuk menapis keputusan dalam pertanyaan MySQL, susunan keputusan mungkin tidak semestinya sepadan dengan susunan nilai yang dinyatakan dalam klausa "IN". Ini kerana MySQL tidak menjamin susunan keputusan secara lalai.
Untuk mengekalkan susunan keputusan dalam pertanyaan "IN", anda boleh menggunakan pendekatan berikut:
Menggunakan Fungsi FIELD
Fungsi FIELD boleh digunakan untuk menentukan susunan keputusan yang dikehendaki. Ia memerlukan senarai nilai yang dipisahkan koma sebagai hujah kedua dan mengembalikan kedudukan nilai yang sepadan dalam senarai. Sebagai contoh, pertanyaan berikut akan mengembalikan hasil dalam susunan yang dinyatakan dalam klausa "IN":
SELECT * FROM foo f WHERE f.id IN (2, 3, 1) ORDER BY FIELD(f.id, 2, 3, 1);
Senarai argumen kepada FIELD boleh menjadi panjang berubah-ubah, membolehkan anda menentukan seberapa banyak nilai yang diperlukan.
Nota:
Kaedah ORDER BY FIELD berfungsi untuk pertanyaan mudah di mana nilai dalam klausa "IN" diketahui terlebih dahulu. Walau bagaimanapun, jika nilai adalah dinamik atau diambil daripada sumber data lain, kaedah ini mungkin tidak sesuai.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjamin Pesanan Keputusan dalam Pertanyaan `IN` MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!