เพื่อเขียน SQL IN query คุณต้องแน่ใจว่าคุณให้ placeholders ใน query โดยใช้ ? เพื่อให้ query ถูก escape อย่างถูกต้อง ตัวอย่างเช่น:
ตัวอย่าง
my_tuple = ("Hello", "world", "John")
placeholder = '?'
placeholders = ', '.join(placeholder for _ in my_tuple)
query = 'SELECT name FROM students WHERE id IN (%s)' % placeholders
print(query)
# now execute using the cursor
cursor.execute(query, my_tuple)
ผลลัพธ์
'SELECT name FROM students WHERE id IN (?, ?, ?)'
และเมื่อเรียก execute จะแทนที่ placeholder ? ด้วยค่าที่ escaped อย่างถูกต้อง