Python MySQLdb 遍历表格

14 投票
2 回答
26189 浏览
提问于 2025-04-17 19:00

我有一个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编号)。

撰写回答