query = ('SELECT ? from table', fields)
"字段"value = name, surname, date
示例
我可以把"字段"放在列表中,但我不知道在查询中放多少(?(。因为,字段变量有时包含5个,有时包含10个列名。我正在尝试将列名动态地传递给查询。
我该如何解决这个问题?
一个语句可以这样形成;(?,?,?("取决于字段的长度。
# create a comma separated list of question marks
# then surround with parenthesis
values = '('+', '.join(['?']*len(fields))+')'
query=('SELECT '+values+' from table',fields)
并不是说这会起作用,因为您没有分享如何连接或查询SQL Server的细节。
相反,您可以使用join-str方法:
table_name = 'MyTable'
fields = ['col1','col2','col3']
values = ', '.join(fields)
statement = 'SELECT '+values+' from '+table_name
query
'SELECT col1, col2, col3 from MyTable'
query=(statement)
连接查询字符串
str1 = "SELECT "
for fieldname in fields:
str1 = str1 + fieldname + ", "
select_query_string = str1[0:-2] + " from " +table
然后在查询中使用
query=(select_query_string)