Problém je pravděpodobně v použití %s
pro název sloupce. To znamená Ovladač SQL se pokusí uniknout této proměnné při její interpolaci, včetně uvozovek, což není to, co chcete pro věci, jako jsou názvy sloupců, názvy tabulek atd.
Při použití hodnoty v SELECT
, WHERE
, atd., pak chcete použít %s
abyste zabránili injekcím SQL a mimo jiné povolit citování.
Zde chcete pouze interpolovat pomocí čistého pythonu. To také znamená, že do metody provádění není předána žádná n-tice vazeb.
def findmin(column):
cur = db.cursor()
sql = "SELECT MIN({0}) FROM table".format(column)
cur.execute(sql)
mintup = cur.fetchone()
SQL housle ukazující fungování SQL:
http://sqlfiddle.com/#!2/e70a41/1