1

我有一个表,我想执行一个返回两行值的查询:

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

该列egg_id有两行可以为该查询返回,但是上面的代码只会打印第一个结果——我希望它也显示第二个,我如何获得这两个值?

编辑:有没有办法用 fetchmany 将每个变量存储在一个单独的变量中?

4

3 回答 3

5

在这种情况下,您可以使用 fetchmany 来获取指定数量的行:

req_egg = cursor.fetchmany(2)

编辑:

但请注意:如果您有一个包含很多行但只需要两行的表,那么您还应该LIMIT在 sql 查询中使用 a ,否则所有行都从数据库返回,但您的程序只使用了两行。

于 2012-04-28T09:46:05.187 回答
1

再次调用 .fetchone() ,它会返回下一个结果。

否则,如果您 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 回答