Použijte list_of_ids
přímo:
format_strings = ','.join(['%s'] * len(list_of_ids))
cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % format_strings,
tuple(list_of_ids))
Tímto způsobem se vyhnete nutnosti citovat sami sebe a vyhnete se všem druhům vkládání SQL.
Všimněte si, že data (list_of_ids
) jde přímo do ovladače mysql jako parametr (ne v textu dotazu), takže nedochází k žádné injekci. V řetězci můžete ponechat libovolné znaky, není třeba znaky odstraňovat nebo uvozovat.