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

Python per la codifica delle stringhe

Non dovresti usare .format() per includere valori in una query sql. Usa invece i parametri sql:

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

cursor.execute(sql, providers)

dove providers è l'elenco originale.

L'idea è di generare una query SQL con in prova utilizzando la sintassi dei parametri SQL che corrisponda al numero di provider nell'elenco:WHERE provider in (%s, %s) ... per un elenco di due fornitori. Sì, la sintassi del parametro MySQLdb sql riprende la sintassi di formattazione python vecchio stile, ma non è la stessa cosa.