例如,如果我在python中运行sql查询(使用pymssql):

cursor.execute("""SELECT * FROM TABLE""")

然后我做:
for row in cursor:
   print row[0]

但是我想第二次遍历该表以进行其他操作,如下所示:
for row in cursor:
    print row[1]

(显然,我可以在1个循环中完成这两个操作,这只是出于示例的缘故)。我可以在不重新执行查询的情况下执行此操作吗?

最佳答案

不,pymssql中的游标的功能类似于生成器。从它们获得结果后,它们将不再包含结果集。

唯一的方法是将查询结果保存到中间列表。

例如:

import pymssql
database = pymssql.connect()
db_cursor = database.cursor()
db_cursor.execute("""SELECT * FROM Table""")
results = db_cursor.fetchall()
for result in results:
    print(result[0])
for result in results:
    print(result[1])

关于python - 我可以多次遍历pymssql中的游标吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38852826/

10-11 04:51