Я знаю, как сопоставить список со строкой:
foostring = ";".join(map(str, list_of_ids))
И я знаю, что могу использовать следующее, чтобы получить эту строку в предложении IN:
cursor.execute("DELETE FROM foo.bar WHERE baz IN ("%s")" % ( foostring))
Что мне нужно, так это выполнить то же самое БЕЗОПАСНО (избегая внедрения SQL) с помощью MySQLDB. В приведенном выше примере, поскольку foostring не передается в качестве аргумента для выполнения, он уязвим. Я также должен цитировать и выходить за пределы библиотеки mysql.
(Есть связанный вопрос SO, но перечисленные там ответы либо не работают для MySQLDB, либо уязвимы для SQL-инъекций.)