Masalah:
Apabila menggunakan klausa WHERE IN, baris biasanya disusun secara menaik mengikut lajur yang dinyatakan dalam klausa ORDER BY. Walau bagaimanapun, terdapat senario di mana ia dikehendaki mengekalkan susunan baris seperti yang dinyatakan dalam klausa IN.
Penyelesaian:
Untuk mencapai ini, anda boleh menggunakan ORDER BY FIELD fungsi. Fungsi ini menyusun semula baris berdasarkan susunan yang ditentukan dalam hujahnya.
Contoh:
Pertimbangkan pertanyaan berikut:
SELECT * FROM table WHERE id IN (118, 17, 113, 23, 72);
Pertanyaan ini akan mengembalikan baris yang dipesan oleh id secara menaik. Untuk mengekalkan susunan baris seperti yang dinyatakan dalam klausa IN, anda boleh menggunakan pertanyaan yang diubah suai berikut:
SELECT * FROM table WHERE id IN (118, 17, 113, 23, 72) ORDER BY FIELD(id, 118, 17, 113, 23, 72)
Dengan menentukan susunan yang diingini sebagai argumen kepada fungsi FIELD, baris akan disusun semula supaya sepadan dengannya. pesanan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekalkan Susunan Baris dalam Pertanyaan Bersyarat Menggunakan Klausa `WHERE IN`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!