1

I have a table, and I want to execute a query that will return the values of two rows:

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

The column egg_id has two rows it can return for that query, however the above code will only print the first result -- I want it to also show the second, how would I get both values?

Edit: Would there be any way to store each one in a separate variable, with fetchmany?

4

3 に答える 3

5

この場合、fetchmany を使用して、指定した数の行を取得できます。

req_egg = cursor.fetchmany(2)

編集:

ただし、注意してください: 多くの行を持つテーブルがあり、必要なのは 2 つだけの場合はLIMIT、SQL クエリでも a を使用する必要があります。そうしないと、データベースからすべての行が返されますが、プログラムで使用されるのは 2 つだけです。

于 2012-04-28T09:46:05.187 に答える
1

もう一度 .fetchone() を呼び出すと、次の結果が返されます。

それ以外の場合、データベースにバグや一貫性のないデータがあったとしても、クエリが常に正確に 2 つの結果を返すことが 100% 確信できる場合は、.fetchall() を実行して両方の結果を取得してください。

于 2012-04-28T09:44:26.467 に答える
1

これを試して:

Cursor.fetchmany(size=2)

sqlite3 (dbapi も実装) のドキュメント: http://docs.python.org/library/sqlite3.html#sqlite3.Cursor.fetchmany

于 2012-04-28T09:44:42.050 に答える