Soalan:
Bagaimana anda mentakrifkan pembolehubah MySQL dengan senarai nilai untuk digunakan dalam klausa "TIDAK MASUK", dengan berkesan mengecualikan berbilang nilai daripada a pertanyaan?
Jawapan:
Apabila membina klausa "TIDAK MASUK" dengan senarai nilai, adalah penting untuk mengelak daripada menggunakan keseluruhan senarai sebagai rentetan tunggal dalam klausa. MySQL menyusunnya sebagai rentetan bersatu, manakala klausa "NOT IN" memerlukan nilai individu. Pertimbangkan contoh berikut:
WHERE id_campo NOT IN (@idcamposexcluidos)
Ini dikompilasi kepada:
WHERE id_campo NOT IN ('817,803,495')
Walau bagaimanapun, sintaks yang betul ialah:
WHERE id_campo NOT IN ('817', '803', '495')
Untuk mengatasinya, terdapat dua pendekatan biasa:
WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0
Adalah penting untuk diperhatikan bahawa menggunakan fungsi FIND_IN_SET() boleh memberi kesan kepada prestasi jika indeks digunakan pada lajur 'id_campo'.
Atas ialah kandungan terperinci Bagaimana Menggunakan Klausa 'NOT IN' MySQL dengan Senarai Nilai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!