Mysql
 sql >> Baza danych >  >> RDS >> Mysql

implodowanie listy do użycia w klauzuli MySQLDB IN w Pythonie

Użyj list_of_ids bezpośrednio:

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

W ten sposób unikniesz konieczności cytowania siebie i wszelkiego rodzaju wstrzyknięć sql.

Zwróć uwagę, że dane (list_of_ids ) trafia bezpośrednio do sterownika mysql jako parametr (nie w tekście zapytania), więc nie ma wstrzyknięcia. Możesz zostawić dowolne znaki w ciągu, nie musisz usuwać ani cytować znaków.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak usunąć z wielu tabel w MySQL?

  2. Przepisywanie mysql select w celu skrócenia czasu i zapisywania tmp na dysk

  3. Neo4j - Upuść indeks za pomocą Cypher

  4. Jakie są różnice między SQL a MySQL

  5. JSON_PRETTY() – Formatuj dokumenty JSON dla łatwiejszej czytelności w MySQL