更快
我正在尝试直接访问mySQL数据库,尽管我正在使用Django 1.6.1和我知道使用Django型号更容易,我需要使用光标。这样的东西:
columnList = ['Field1', 'Field2']
cursor.execute("SELECT %s FROM table", [columnList])
但是我得到这个例外: (1241, 'Operand should contain 1 column(s)')
如何将dinamic列列表传递给执行光标函数?
在execute
的当前形式中,只有一个列表作为第二个参数,但您正在列表中的列表。尝试以下操作:
columnList = ['Field1', 'Field2']
cursor.execute("SELECT %s, %s FROM table", columnList)
最后,我构建了一个带有列表中所有元素的字符串,然后将此字符串传递给查询字符串:
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 queryset