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

Python trudne kodowanie ciągów

Nie powinieneś używać .format() aby uwzględnić wartości w zapytaniu sql. Zamiast tego użyj parametrów sql:

sql += " WHERE provider IN ({}) GROUP BY date ORDER BY date ASC".format(', '.join(['%s'] * len(providers)))

cursor.execute(sql, providers)

gdzie providers to oryginalna lista.

Pomysł polega na wygenerowaniu zapytania SQL z in przetestuj za pomocą składni parametrów SQL pasującej do liczby dostawców na Twojej liście:WHERE provider in (%s, %s) ... dla listy dwóch dostawców. Tak, składnia parametru sql MySQLdb odzwierciedla starą składnię formatowania Pythona, ale to nie to samo.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego ta aktualizacja MySQL nie działa?

  2. Jak tworzyć i używać widoków MySQL

  3. Doctrine Query Language pobierz maks./najnowszy wiersz na grupę

  4. Python:Jak uzyskać czas z obiektu datetime.timedelta?

  5. Czy możemy połączyć zdalną bazę danych MySQL w systemie Android za pomocą JDBC?