2016-03-15 50 views
1

如果cursor.execute('select * from users')返回一個4行集合,然後返回cursor.fetchone()將光標定位到返回結果的開頭,以便隨後的cursor.fetchall()給我所有4行?或者我需要再次cursor.execute,然後cursor.fetchall()?這看起來很尷尬。Python&SQLite:fetchone()和fetchall()以及光標控制

我檢查了Python文檔,找不到相關的東西。我錯過了什麼?

+1

C API具有'sqlite3_stmt_reset',但它似乎沒有顯示Python公開此功能。 –

回答

1

SQLite按需計算每個結果行,因此既不能返回到前一行,也不能確定後續有多少行。

返回的唯一方法是重新執行查詢。或者,請先撥打fetchall(),然後使用返回的列表而不是光標。

+0

謝謝你的回答 - 非常清楚。 – fractalgreg