Mysql
 sql >> база данни >  >> RDS >> Mysql

имплодиране на списък за използване в клауза IN на python MySQLDB

Използвайте list_of_ids директно:

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

По този начин избягвате да се налага да се цитирате и избягвате всички видове sql инжекция.

Имайте предвид, че данните (list_of_ids ) отива директно към драйвера на mysql, като параметър (не в текста на заявката), така че няма инжектиране. Можете да оставите всякакви знаци, които искате в низа, няма нужда да премахвате или цитирате знаци.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на Oracle JDeveloper с MySQL Database Service на Oracle Cloud Platform, част 2

  2. Как мога да използвам mySQL replace() за заместване на низове в множество записи?

  3. Вмъкнете Blobs в MySql бази данни с php

  4. MySQL Резултати като списък, разделен със запетая

  5. Използване на Count за намиране на броя на събитията