Python MySQLdb 遍历表格
我有一个MSQL数据库,我需要遍历一个表格,并在满足某个条件时执行一个操作。然后,当到达表格的末尾时,再回到顶部重新开始。
目前我有
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来做到这一点?
2 个回答
17
一旦你在光标中有了结果,你就可以直接在里面进行遍历。
cursor = database.cursor()
cursor.execute("SELECT user_id FROM round WHERE state == -1 AND state = 2")
for round in cursor:
if round[0] != 5
...do stuff
9
这段话的意思是,这个操作会把光标放在结果集的开头,并告诉你一共返回了多少行数据。我之前对这个有些犹豫,但我找到的这个文档是最权威的。以前的Python MySQLdb库在执行时会返回行数,但Python数据库API规范v2.0并没有这样做,所以这个方法应该是最兼容的。
cursor.execute("SELECT user_id FROM round WHERE state = -1 OR state = 2")
numrows = cursor.rowcount
这会告诉你返回了多少行数据。
for x in xrange(0,numrows):
row = cursor.fetchone()
print row[0], "-->", row[1]
这会逐行遍历每一行数据(不需要用range来给x编号)。