我有一个由给定的 8 列组成的 mysql 数据库表
ID C1 C2 C3 C4 C5 C6 C7
1 25 33 76 87 56 76 47
2 67 94 90 56 77 32 84
3 53 66 24 93 33 88 99
4 73 34 52 85 67 82 77
5 78 55 52 100 78 68 32
6 67 35 60 93 88 53 66
我需要一次获取除 ID
列之外的所有列的 3 行。到目前为止,我在 python 中完成了这段代码,它为我获取了 ID
值为 1、2、3 的行。
ex = MySQLdb.connect(host,port,user,passwd,db)
with ex:
ex_cur = ex.cursor()
ex.execute("SELECT C1,C2,C3,C4,C5,C6,C7 FROM table LIMIT 0, 3;")
在第二个循环中,我需要获取 ID
值为 2、3、4 的行,第三个循环获取 ID
值为 3、4、5 的行,这应该继续直到数据库结束。我应该使用什么查询来遍历表以获得所需的行集。
最佳答案
我相信有三种方法可以做到这一点:(我将在非常高的层次上进行解释)
您可以创建一个大小限制为 3 的队列,并将行作为流读入。一旦队列达到最大大小 3,进行处理,弹出队列中的第一个元素,然后继续流。 (更高效)
您需要一个迭代器并为您必须执行的每组 3 个 ID 重置光标。
由于您的表相对较小(对于较大的表不建议这样做),将整个数据库加载到数据结构/内存中。也许为行创建一个对象并使用 ORM 将行映射到对象。然后,您只需遍历每个对象或一组 3 个对象,并进行必要的处理。
关于python - 在python中遍历mysql中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31300556/