我正在尝试直接访问MySql数据库,虽然我使用的是Django 1.6.1和 我知道使用Django模型更容易,我需要使用游标。 像这样:
columnList = ['Field1', 'Field2']
cursor.execute("SELECT %s FROM table", [columnList])
但我得到了这个例外:(1241, 'Operand should contain 1 column(s)')
如何将执行游标功能传递给dinamic列列表?
答案 0 :(得分:2)
在execute
的当前形式中,只有一个列表可以作为第二个参数,但是您要在列表中传递列表。试试这个:
columnList = ['Field1', 'Field2']
cursor.execute("SELECT %s, %s FROM table", columnList)
答案 1 :(得分:0)
最后,我构建了一个包含列表中所有元素的字符串,并将此字符串传递给查询字符串:
columnList = ['Field1', 'Field2']
for idx, field in enumerate(columnList):
if idx != len(columnList)-1:
listFields += field + ', '
else:
listFields += field
cursor.execute("SELECT %s FROM table", listFields)
这不是我想要的,而且......我并不为此感到骄傲......但即使这样比迭代django查询集更快