Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

implodindo uma lista para uso em uma cláusula python MySQLDB IN


Use o list_of_ids diretamente:
format_strings = ','.join(['%s'] * len(list_of_ids))
cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % format_strings,
                tuple(list_of_ids))

Dessa forma você evita ter que se citar, e evita todo tipo de injeção de sql.

Observe que os dados (list_of_ids ) está indo diretamente para o driver do mysql, como parâmetro (não no texto da consulta) para que não haja injeção. Você pode deixar qualquer caractere que desejar na string, sem necessidade de remover ou citar caracteres.