sql >> Database >  >> RDS >> Mysql

een lijst imploderen voor gebruik in een python MySQLDB IN-clausule

Gebruik de list_of_ids direct:

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

Zo voorkom je dat je jezelf moet quoten en vermijd je allerlei sql-injecties.

Merk op dat de gegevens (list_of_ids ) gaat rechtstreeks naar de driver van mysql, als een parameter (niet in de vraagtekst), dus er is geen injectie. U kunt alle tekens die u wilt in de tekenreeks laten staan, u hoeft geen tekens te verwijderen of aan te halen.



  1. Een lijst met triggergebeurtenissen retourneren in SQL Server

  2. Android Sqlite onupgrade verwijder tabel uit database

  3. String-array retourneren en gebruiken op AutoCompleteTextview

  4. MySQL-volgorde op beste match