sql >> Databasteknik >  >> RDS >> Mysql

implodera en lista för användning i en python MySQLDB IN-sats

Använd list_of_ids direkt:

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

På så sätt slipper du behöva citera dig själv och slipper alla typer av sql-injektion.

Observera att data (list_of_ids ) går direkt till mysqls drivrutin, som en parameter (inte i frågetexten) så det finns ingen injektion. Du kan lämna vilka tecken du vill i strängen, du behöver inte ta bort eller citera tecken.



  1. Innebär en Postgres UNIQUE begränsning ett index?

  2. 3 sätt att skapa ett CREATE TABLE-skript från en befintlig tabell i SQLite

  3. 3 sätt att "Unhex" en sträng i MySQL

  4. Använd MySQL relationsdatabaser på Ubuntu 10.10 (Maverick)