我觉得这是一个愚蠢的问题,但我找不到任何地方。
我想使用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' on table, field and schema ?
欢呼声
-i
答案 0 :(得分:0)
Python的DBAPI中的实体名称(表/列等...)不应该通过任何占位符处理来运行,因为变量应该是。您必须自己进行格式化:
'select * from table offset %s limit %s order by %s' % (0,5,'sort_column')
但是请为WHERE var = %s
等使用正确的转义/占位符函数...