问题可能
%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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)