Rumah > pangkalan data > tutorial mysql > Bagaimana Menggunakan Pembolehubah dengan Betul dengan Operator 'NOT IN' MySQL?

Bagaimana Menggunakan Pembolehubah dengan Betul dengan Operator 'NOT IN' MySQL?

Linda Hamilton
Lepaskan: 2025-01-01 14:07:11
asal
963 orang telah melayarinya

How to Properly Use a Variable with MySQL's

Cara Menetapkan Pembolehubah untuk Senarai "TIDAK MASUK" dalam MySQL

Apabila bekerja dengan pertanyaan MySQL, adalah perkara biasa untuk menghadapi situasi di mana anda perlu mengecualikan nilai tertentu daripada set hasil menggunakan pengendali "TIDAK MASUK". Untuk mencapai matlamat ini, anda boleh menetapkan pembolehubah untuk menyimpan senarai nilai yang dikecualikan. Walau bagaimanapun, mentakrifkan pembolehubah dalam format yang betul adalah penting untuk memastikan pertanyaan dilaksanakan dengan jayanya.

Pertimbangkan pertanyaan berikut:

SET @idcamposexcluidos='817,803,495';
WHERE id_campo not in (@idcamposexcluidos)
Salin selepas log masuk

Pertanyaan di atas cuba menetapkan pembolehubah yang dipanggil @idcamposexcluidos kepada senarai nilai dan kemudian gunakan pembolehubah dalam klausa "TIDAK DALAM". Walau bagaimanapun, ia mungkin mengakibatkan ralat atau hasil yang salah jika pembolehubah tidak ditakrifkan dalam format yang sesuai.

Pengendali "TIDAK MASUK" memerlukan senarai nilai berasingan dalam kurungan, manakala pembolehubah @idcamposexcluidos mengandungi koma -tali yang dipisahkan. Ketidakpadanan ini membawa kepada penyusunan dan pelaksanaan pertanyaan yang salah.

Untuk menyelesaikan isu ini, terdapat dua pendekatan utama:

1. SQL Dinamik:

SQL Dinamik membolehkan anda membina rentetan pertanyaan secara dinamik pada masa jalan, termasuk senarai nilai yang dikecualikan. Pendekatan ini memastikan bahawa pertanyaan diformat dan dilaksanakan dengan betul.

SET @sql = CONCAT('WHERE id_campo not in (', @idcamposexcluidos, ')');
PREPARE stmt FROM @sql;
EXECUTE stmt;
Salin selepas log masuk

2. Fungsi FIND_IN_SET:

MySQL menyediakan fungsi yang dipanggil FIND_IN_SET yang boleh digunakan untuk menyemak sama ada nilai wujud dalam rentetan yang dipisahkan koma. Dengan menggunakan fungsi ini, anda boleh mengelakkan keperluan untuk menukar pembolehubah kepada senarai yang betul.

SET @idcamposexcluidos='817,803,495';
WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0
Salin selepas log masuk

Walaupun fungsi FIND_IN_SET ialah cara yang mudah untuk mengendalikan senario ini, adalah penting untuk ambil perhatian bahawa ia tidak boleh menggunakan indeks semasa melakukan pemeriksaan. Ini boleh mengakibatkan prestasi berkurangan untuk set data yang besar.

Atas ialah kandungan terperinci Bagaimana Menggunakan Pembolehubah dengan Betul dengan Operator 'NOT IN' MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan