Masalahnya kemungkinan adalah penggunaan %s
untuk nama kolom. Itu berarti Driver SQL akan mencoba keluar dari variabel itu saat menginterpolasinya, termasuk mengutip, yang bukan yang Anda inginkan untuk hal-hal seperti nama kolom, nama tabel, dll.
Saat menggunakan nilai di SELECT
, WHERE
, dll. maka Anda ingin menggunakan %s
untuk mencegah suntikan SQL dan mengaktifkan kutipan, antara lain.
Di sini, Anda hanya ingin melakukan interpolasi menggunakan python murni. Itu juga berarti tidak ada tuple binding yang diteruskan ke metode eksekusi.
def findmin(column):
cur = db.cursor()
sql = "SELECT MIN({0}) FROM table".format(column)
cur.execute(sql)
mintup = cur.fetchone()
Biola SQL menunjukkan SQL berfungsi:
http://sqlfiddle.com/#!2/e70a41/1