sql >> データベース >  >> RDS >> Mysql

Pythonの挑戦的な文字列エンコーディング

    .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フォーマット構文を反映していますが、同じものではありません。




    1. mysqlはリファレンスドキュメントでDISTINCT()をどのように定義しますか

    2. SQLiteOpenHelperを使用してAndroidでsqliteデータベースをアタッチする

    3. Oracle SQL Developerでクエリ結果をExcelにエクスポートする方法は?

    4. アプリの起動時にpg-promiseとのデータベース接続を確認する