我想以编程方式在表中传递来自 python(psycopg2) 的几列。
cursor.execute("SELECT col1,col2,col3...coln FROM %s ORDER BY datetime ASC" %mytable)
列名 col1,col2,col3...coln 的长度可以是 100,并且每次调用 cursor.execute() 时都会更改。
最佳答案
您已经在使用字符串插值,因此您可以对列名执行相同的操作。将您的列名放在一个数组中,并在格式化查询时加入它们:
columns = ['col1', 'col2', 'col3']
cursor.execute("SELECT %s FROM %s ORDER BY datetime ASC" % (','.join(columns), mytable))
重要的是,列由您严格控制,而不是根据用户输入生成,因为这会导致 SQL 注入(inject)攻击。
关于python - PostgreSQL SELECT 列名以编程方式在 python 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50850843/