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
Barbara Streisandasal
2024-10-31 00:53:03194semak imbas

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>

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>

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!

Kenyataan:
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