我有一个mysql数据库表,由8列组成,如给定的
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的行,这些行应该一直持续到数据库结束。我应该使用什么查询来遍历表,以便获得所需的行集。
答案 0 :(得分:0)
我相信有三种方法可以做到这一点:(我将在很高的层次上解释)
您可以创建大小限制为3的队列,并将这些行作为流读入。一旦队列达到最大大小3,执行处理,弹出队列中的第一个元素,然后继续流。 (更有效率)
您需要一个迭代器,并为每组必须执行的3个ID重置光标。
由于您的表相对较小(不会对较大的表建议),请将整个数据库加载到数据结构/内存中。也许为行创建一个对象并使用ORM将行映射到对象。然后你只需要迭代每个对象或一组3个对象,并进行必要的处理。