Ram*_*tan 6 python sql database
例如,如果我在 python 中运行 sql 查询(使用 pymssql):
cursor.execute("""SELECT * FROM TABLE""")
Run Code Online (Sandbox Code Playgroud)
然后我这样做:
for row in cursor:
print row[0]
Run Code Online (Sandbox Code Playgroud)
但后来我想第二次循环遍历表以进行不同的操作,如下所示:
for row in cursor:
print row[1]
Run Code Online (Sandbox Code Playgroud)
(显然我可以在 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])
Run Code Online (Sandbox Code Playgroud)