sql >> Database teknologi >  >> RDS >> Mysql

implodering af en liste til brug i en python MySQLDB IN-klausul

Brug list_of_ids direkte:

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å den måde slipper du for at skulle citere dig selv, og undgår alle former for sql-injektion.

Bemærk, at dataene (list_of_ids ) går direkte til mysqls driver, som en parameter (ikke i forespørgselsteksten), så der er ingen indsprøjtning. Du kan efterlade alle tegn, du ønsker, i strengen, ingen grund til at fjerne eller citere tegn.



  1. Hvad skal man sige til ASYNC NETWORK IO-ventetypen?

  2. Konverter adgang til PostgreSQL?

  3. Konverter BufferedInputStream til billede

  4. Oracle-databasegendannelse