Rumah > pangkalan data > tutorial mysql > Bagaimana Memformat Pembolehubah MySQL dengan Betul untuk Digunakan dalam Klausa 'TIDAK DALAM'?

Bagaimana Memformat Pembolehubah MySQL dengan Betul untuk Digunakan dalam Klausa 'TIDAK DALAM'?

Mary-Kate Olsen
Lepaskan: 2024-12-31 20:32:10
asal
918 orang telah melayarinya

How to Correctly Format MySQL Variables for Use in a

Format Pembolehubah MySQL untuk Senarai Nilai "NOT IN"

Apabila cuba mengecualikan nilai tertentu dalam pertanyaan MySQL menggunakan senarai "NOT IN", berikan pembolehubah kepada nilai yang dikecualikan boleh menjadi penyelesaian yang mudah. Walau bagaimanapun, memastikan format pembolehubah yang betul adalah penting.

Seperti yang diterangkan dalam pertanyaan anda, anda cuba memberikan pembolehubah '@idcamposexcluidos' dengan format yang berbeza:

  • SET @idcamposexcluidos='817,803,495 ';
  • SET @idcamposexcluidos='(817,803,495)';
  • SET @idcamposexcluidos=817,803,495;

Walau bagaimanapun, tiada satu pun daripada format ini berfungsi seperti yang diharapkan. Sebabnya ialah klausa "IN" memerlukan nilai yang berasingan, bukan satu rentetan. Oleh itu, pertanyaan:

WHERE id_campo not in (@idcamposexcluidos)
Salin selepas log masuk

berkesan menjadi:

WHERE id_campo not in ('817,803,495')
Salin selepas log masuk

yang tidak betul. Nilai harus disediakan sebagai literal rentetan yang berasingan:

WHERE id_campo not in ('817','803','495')
Salin selepas log masuk

Untuk mengatasi isu ini, terdapat dua pilihan:

  1. SQL Dinamik: Cipta pertanyaan secara dinamik menggunakan gabungan nilai yang dikecualikan.
  2. MySQL Fungsi FIND_IN_SET(): Gunakan fungsi FIND_IN_SET() untuk menyemak sama ada nilai wujud dalam senarai nilai yang dikecualikan yang dipisahkan koma, seperti yang ditunjukkan di bawah:
SET @idcamposexcluidos='817,803,495';
...
WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0
Salin selepas log masuk

Perhatikan bahawa menggunakan Fungsi FIND_IN_SET() mungkin menjejaskan penggunaan indeks.

Atas ialah kandungan terperinci Bagaimana Memformat Pembolehubah MySQL dengan Betul untuk Digunakan dalam Klausa 'TIDAK DALAM'?. 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