1

我觉得这是一个愚蠢的问题,但我在任何地方都找不到任何东西。

我想使用 psycopg2 构建一个 SQL 查询,其中用户按列指定排序/顺序。客户端它是一个 javascript 数据网格,提供排序/分页等。

正常的替换练习不起作用:(注意 E'xx')

cur.mogrify('select * from table offset %s limit %s order by %s', [0,5,'sort_column'])
>>> "select * from table offset 0 limit 5 order by E'sort_column'"

没有清理/替换我自己的 order by 子句,推荐的方法是什么?

我是否重复: 表、字段和架构上的 psycopg2 E'

干杯

-一世

4

1 回答 1

1

Python 的 DBAPI 中的实体名称(表/列等)不应像变量那样通过任何占位符处理来运行。您将必须进行自己的格式化:

'select * from table offset %s limit %s order by %s' % (0,5,'sort_column')

但是请使用正确的转义/占位符功能WHERE var = %s等...

于 2012-07-19T08:27:42.173 回答