我如何用python-mysql“获取两个”?

时间:2012-04-28 09:37:17

标签: python select mysql-python

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

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

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

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

3 个答案:

答案 0 :(得分:4)

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

req_egg = cursor.fetchmany(2)

编辑:

但要注意:如果你有一个包含许多行但只需要两行的表,那么你也应该在sql查询中使用LIMIT,否则所有行都从数据库返回,但只使用了两行通过你的计划。

答案 1 :(得分:1)

第二次调用.fetchone(),它将返回下一个结果。

否则,如果您100%肯定您的查询总是会返回两个结果,即使您在数据库中有错误或不一致的数据,那么只需执行.fetchall()并捕获两个结果。 / p>

答案 2 :(得分:1)

试试这个:

Cursor.fetchmany(size=2)

sqlite3(也实现dbapi)的文档:http://docs.python.org/library/sqlite3.html#sqlite3.Cursor.fetchmany