Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Melaksanakan Pertanyaan SELECT dengan Klausa IN Menggunakan MySQLdb?

Bagaimana untuk Melaksanakan Pertanyaan SELECT dengan Klausa IN Menggunakan MySQLdb?

Barbara Streisand
Lepaskan: 2024-10-31 00:53:03
asal
192 orang telah melayarinya

How to Execute a SELECT Query with an IN Clause Using MySQLdb?

Melaksanakan "SELECT ... WHERE ... IN ..." menggunakan MySQLdb

Apabila cuba melaksanakan pertanyaan SELECT dengan DALAM klausa menggunakan MySQLdb, pengguna mungkin menghadapi masalah di mana tiada baris dikembalikan walaupun pertanyaan berfungsi seperti yang diharapkan daripada baris arahan mysql. Ini boleh berlaku disebabkan petikan yang tidak perlu diletakkan di sekitar nilai IN.

Untuk mengatasi isu ini, pembinaan manual parameter pertanyaan diperlukan. Dalam kedua-dua Python 2 dan 3, rentetan ruang letak yang dipisahkan koma (%s) boleh dijana daripada senarai nilai IN. Pertanyaan kemudiannya boleh diformat menggunakan rentetan ini dan dilaksanakan dengan senarai nilai asal.

Untuk Python 3:

<code class="python">args=['A', 'C']
sql='SELECT fooid FROM foo WHERE bar IN (%s)' 
in_p=', '.join(list(map(lambda x: '%s', args)))
sql = sql % in_p
cursor.execute(sql, args)</code>
Salin selepas log masuk

Untuk Python 2:

<code class="python">args=['A', 'C']
sql='SELECT fooid FROM foo WHERE bar IN (%s)' 
in_p=', '.join(map(lambda x: '%s', args))
sql = sql % in_p
cursor.execute(sql, args)</code>
Salin selepas log masuk

Dengan mengikuti pendekatan ini, pertanyaan SQL akan diformatkan dengan betul dengan nilai IN yang diingini, menyelesaikan isu di mana tiada baris dikembalikan sebelum ini.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pertanyaan SELECT dengan Klausa IN Menggunakan MySQLdb?. 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