Dav*_*dJB 13 python mysql mysql-python
我有一个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
Run Code Online (Sandbox Code Playgroud)
在循环中但这显然只是循环第一个条目.我想你需要使用for in函数来读取表格,但我不确定如何使用mysqldb完成这个操作?
Dvd*_*ins 12
一旦光标中有结果,就可以在其中进行迭代.
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
Run Code Online (Sandbox Code Playgroud)
这会将光标设置在结果集的开头并告诉你它返回了多少行(我在这一行上来回走动,但这是我发现的最权威的文档,旧的Python MySQLdb lib在执行时返回rowcount ,但Python数据库API规范v2.0没有,这应该是最兼容的)
cursor.execute("SELECT user_id FROM round WHERE state = -1 OR state = 2")
numrows = cursor.rowcount
Run Code Online (Sandbox Code Playgroud)
会告诉你你得到了多少行
for x in xrange(0,numrows):
row = cursor.fetchone()
print row[0], "-->", row[1]
Run Code Online (Sandbox Code Playgroud)
迭代每一行(不需要用范围枚举x)