MySQL IN () Isu Pertanyaan untuk Rekod Multi-ID
Apabila melaksanakan pertanyaan:
SELECT * FROM table WHERE id IN (1,2,3,4);
kepada mendapatkan semula data berdasarkan berbilang ID, anda mungkin menghadapi masalah di mana baris yang mengandungi berbilang ID yang sepadan tidak dikembalikan. Pertanyaan ini diterjemahkan kepada:
SELECT * FROM table WHERE id='1' or id='2' or id='3' or id='4';
yang mengambil hanya baris yang sepadan dengan mana-mana ID tunggal dalam set.
Penyelesaian: Menggunakan SET Datatype
Untuk menangani had ini, anda boleh mempertimbangkan untuk mengubah jenis data lajur id kepada SET. Ini membolehkan anda menyimpan berbilang nilai dalam satu lajur. Selepas membuat perubahan ini, anda boleh menggunakan fungsi FIND_IN_SET dalam pertanyaan anda:
SELECT * FROM table WHERE FIND_IN_SET('1', id);
Pertanyaan ini akan mengembalikan semua baris yang mengandungi '1' sebagai salah satu nilai dalam lajur id, tanpa mengira sebarang nilai lain hadir. Ini menyediakan cara yang lebih fleksibel untuk memadankan rekod dengan berbilang ID.
Atas ialah kandungan terperinci Mengapa Pertanyaan MySQL IN() Tidak Mengembalikan Baris dengan Berbilang ID Padanan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!