2012-04-28 54 views
0

我有一個表,我想執行一個查詢將返回兩行的值:如何用python-mysql「獲取兩個」?

cursor.execute("""SELECT `egg_id` 
         FROM `groups` 
         WHERE `id` = %s;""", (req_id)) 
    req_egg = str(cursor.fetchone()) 
    print req_egg 

egg_id有兩行就可以返回該查詢,但上面的代碼將只打印第一個結果 - 我希望它也顯示第二個,我將如何獲得這兩個值?

編輯:有沒有辦法將每個存儲在一個單獨的變量中,用fetchmany?

回答

4

您可以使用支持fetchmany獲取指定的行數:

1

第二次調用.fetchone(),它會返回下一個結果。

否則,如果您100%肯定地確信您的查詢總是會返回兩個結果,即使您的數據庫中存在錯誤或不一致的數據,只需執行.fetchall()並捕獲這兩個結果即可。在這種情況下http://docs.python.org/library/sqlite3.html#sqlite3.Cursor.fetchmany

+0

'.fetchmany(2)'怎麼辦? – Tadeck 2012-04-28 09:45:55

1

試試這個:爲sqlite3的

Cursor.fetchmany(size=2) 

文檔(這也實現了DBAPI)

​​

編輯:

但請注意:如果您有一個表w如果有很多行,但只需要兩個,那麼你應該在你的sql查詢中使用LIMIT,否則所有行都從數據庫中返回,但只有兩行被你的程序使用。