2011-03-01 101 views
0

我想計算查詢返回的總行數。我能夠檢索由查詢返回的行,但是如果我需要在沒有數據退出的情況下工作,該怎麼辦?那就是當查詢從數據庫返回沒有va時。如何計算從python中的select查詢返回的值

我用來解決這個問題的代碼是:

嘗試: cur.execute(查詢)

id = cur.fetchone()[0] 
    if(id is None): 
     return '-1' 
    else: 
     return id 

但這doenst幫助時,沒有返回值從查詢中選擇(當條件。不符合選擇語句中定義的標準)

回答

1

cur.fetchall()會給你一個所有行的序列。您可以查看該序列的長度以查看是否返回了任何行。這適用於小型結果集,但可能不適用於返回大量數據的查詢。

或者,您可以查看cur.rowcount。 Rowcount將返回查詢中的行數,如果不能確定數字,則返回-1。設置行數由實施決定;幾個流行的python數據庫模塊(最值得注意的是sqlite3),不要爲所有查詢設置rowcount。對於不設置rowcount的模塊,計算結果行數的唯一方法是將完整的結果集加載到內存中。

+0

非常感謝,它工作。 – 2011-03-01 21:29:29

+0

如果它適合你,你能否將這個答案標爲正確(使用複選標記)?當他們遇到這個問題時,它將幫助其他人找到正確的答案。 – quanticle 2011-03-02 02:53:00