Wiem, jak zmapować listę na ciąg znaków:
foostring = ";".join( map(str, list_of_ids))
I wiem, że mogę użyć następującego, aby umieścić ten ciąg w klauzuli IN:
cursor.execute("DELETE FROM foo.bar WHERE baz IN ("%s")" % ( foostring))
To, czego potrzebuję, to wykonać to samo BEZPIECZNIE (unikając wstrzykiwania SQL) przy użyciu MySQLDB. W powyższym przykładzie, ponieważ foostring nie jest przekazywany jako argument do wykonania, jest podatny na ataki. Muszę też cytować i uciekać poza bibliotekę mysql.
(Istnieje powiązane pytanie SO
a>, ale wymienione tam odpowiedzi albo nie działają dla MySQLDB, albo są podatne na wstrzyknięcie SQL.