Python Cursor SELECT列动态

时间:2014-01-31 10:53:18

标签: python mysql django

我正在尝试直接访问MySql数据库,虽然我使用的是Django 1.6.1和 我知道使用Django模型更容易,我需要使用游标。 像这样:

columnList = ['Field1', 'Field2']
cursor.execute("SELECT %s FROM table", [columnList])

但我得到了这个例外:(1241, 'Operand should contain 1 column(s)')

如何将执行游标功能传递给dinamic列列表?

2 个答案:

答案 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查询集更快