2011-04-14 54 views
0

我努力做到以下几点:MySQLdb的,Python原始查询和定制ORDER BY

query = "SELECT * FROM table ORDER BY %s %s" 
parameters = ['avg', 'DESC'] 

但参数不正确映射。

SELECT * FROM table ORDER BY 'avg' 'DESC' 

而不是

SELECT * FROM table ORDER BY avg DESC 

你知道为什么吗?

回答

1

使用此:

"SELECT * FROM table ORDER BY %s %s" % ('avg', 'DESC') 

应该做的伎俩。

+0

虽然这根本不使用参数。 – 2011-04-14 14:10:03

+0

当然(我们有相同的观点) – 2011-04-14 14:19:01

+1

虽然取决于这些值的来源,您可能会有注射风险 – 2011-04-14 14:19:56

1

您不能使用参数来动态指定字段名称。它们仅指定值。