我有一个表,我想执行一个返回两行值的查询:
cursor.execute("""SELECT `egg_id`
FROM `groups`
WHERE `id` = %s;""", (req_id))
req_egg = str(cursor.fetchone())
print req_egg
列egg_id
有两行可以为该查询返回,但是上面的代码只打印第一个结果 - 我希望它也显示第二个结果,我如何获得这两个值?
编辑:有没有办法将每个存储在一个单独的变量中,使用fetchmany?
答案 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