PostgreSQL SELECT列在python中以编程方式命名

时间:2018-06-14 06:21:50

标签: python postgresql psycopg2

我想以编程方式从表中的python(psycopg2)中传递几列。

  cursor.execute("SELECT col1,col2,col3...coln FROM %s ORDER BY datetime ASC" %mytable)

列名col1,col2,col3 ... coln的长度可以是100,并且每次调用cursor.execute()时都会更改。

1 个答案:

答案 0 :(得分:2)

您已经在使用字符串插值,因此您可以对列名执行相同的操作。将列名称放在数组中并在格式化查询时将它们连接起来:

columns = ['col1', 'col2', 'col3']
cursor.execute("SELECT %s FROM %s ORDER BY datetime ASC" % (','.join(columns), mytable))

重要的是,列必须由您严格控制,而不是从用户输入生成,因为这将启用SQL注入攻击。