.format()
は使用しないでください SQLクエリに値を含める。代わりにSQLパラメータを使用してください:
sql += " WHERE provider IN ({}) GROUP BY date ORDER BY date ASC".format(', '.join(['%s'] * len(providers)))
cursor.execute(sql, providers)
ここで、providers
元のリストです。
アイデアは、in
を使用してSQLクエリを生成することです。 リスト内のプロバイダーの数に一致するSQLパラメーター構文を使用してテストします。WHERE provider in (%s, %s) ...
2プロバイダーリストの場合。はい、MySQLdb sqlパラメーター構文は古いスタイルのpythonフォーマット構文を反映していますが、同じものではありません。