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

Pythonを使用して可変列名でSQLにアクセスする

    問題は、%sの使用である可能性があります 列名。つまり、SQLドライバー 列名やテーブル名などに必要なものではない引用符を含め、補間するときにその変数をエスケープしようとします。

    を使用する場合 SELECTで 、WHERE などなど、%sを使用します SQLインジェクションを防ぐため とりわけ、引用を有効にします。

    ここでは、純粋なPythonを使用して補間したいだけです。これは、executeメソッドにバインドタプルが渡されないことも意味します。

    def findmin(column):
        cur = db.cursor()
        sql = "SELECT MIN({0}) FROM table".format(column)
        cur.execute(sql)
        mintup = cur.fetchone()
    

    SQLが機能していることを示すSQLフィドル:

    http://sqlfiddle.com/#!2/e70a41/1




    1. 改行を保持したままMySQLにテキストデータを保存および取得するにはどうすればよいですか?

    2. サブクエリが相互に排他的である必要がある結果を返すレコードを除外する

    3. エラー「ORA-01790:式は対応する式と同じデータ型である必要があります」を修正しました

    4. MySQLは、同じIDを持つ複数の行の値を新しい列にコピーしますか?