【发布时间】:2013-03-02 02:12:07
【问题描述】:
我有一个 MSQL 数据库,我需要遍历一个表并在满足 WHERE 子句时执行一个操作。然后一旦它到达桌子的尽头,回到顶部并重新开始。
目前我有
cursor = database.cursor()
cursor.execute("SELECT user_id FROM round WHERE state == -1 AND state = 2")
round_id = cursor.fetchone()
if round != 5
...do stuff
在一个循环中,但这显然只会循环第一个条目。我想您需要使用 for in 函数来读取表格,但我不确定如何使用 mysqldb 来执行此操作?
【问题讨论】:
-
您可以通过反复调用
cursor.fetchone()(例如在while中)直到它返回(None,)来获得查询结果 -
我相信你可以简单地通过你的
cursor.execute()做一个for循环 -
@PurityLake 不,你不能。
cursor.execute返回行数。你可以做for item_idx in range(cursor.execute()): something = cursor.fetchone() -
抱歉,几乎没有扫描过执行函数
-
@DJV,我花了一段时间才找到一个权威的答案(没有 MySQL 数据库可以玩这个代码测试很棘手),很多例子显示
.execute()返回行数,但 Python 数据库 API规范 v2.0 明确表示没有,所以我选择了.rowcount
标签: python mysql mysql-python