使用python list中的信息删除MYSQL中的多个行

Mer*_*lin 2 python mysql string sql-delete

如果列表LL:

LL = ['foo', bar', 'noo', 'boo',]

在MySQL表中,使用其他ID在列ID中进行测试.

我可以使用以下内容删除LL中ID为ID的所有行:

 csr.execute("""DELETE FROM test.test WHERE ID = "Foo"; """)
  csr.execute("""DELETE FROM test.test WHERE ID = "bar"; """)  
  csr.execute("""DELETE FROM test.test WHERE ID = "noo"; """)
  csr.execute("""DELETE FROM test.test WHERE ID = "boo"; """)  
Run Code Online (Sandbox Code Playgroud)

我怎么能以编程方式做到这一点?

sap*_*pht 6

您可以使用单个查询执行此操作:

id_list = ['abc', 'def', 'ghi']
query_string = "delete from test where id in (%s)" % ','.join(['?'] * len(id_list))
cursor.execute(query_string, id_list)
Run Code Online (Sandbox Code Playgroud)

由于cursor.execute在进行替换时会转义字符串,因此这个示例可以安全地防止SQL注入.