Elimina múltiples filas en MYSQL con información de la lista de python

Si lista LL:

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

está en una tabla de MySQL, prueba en ID de columna con otros ID.

Podría usar lo siguiente para eliminar todas las filas con ID en LL:

  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"; """) 

¿Cómo podría hacerlo programáticamente?

Puedes hacerlo con una sola consulta:

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

Dado que cursor.execute escapa las cadenas al realizar sustituciones, este ejemplo es seguro contra inyecciones de SQL.

Formadores de cadenas: http://docs.python.org/library/string.html#format-string-syntax

 ["""DELETE FROM test.test WHERE ID = "%s"; """ % x for x in LL] 

y luego ejecute cada una de las sentencias de SQL en la lista.

 for item in LL: csr.execute("DELETE FROM test.test WHERE ID = '%s'", item) 

¿como eso?