問題は、%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