在python中迭代mysql中的行

时间:2015-07-08 18:17:09

标签: python mysql iteration

我有一个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的行,这些行应该一直持续到数据库结束。我应该使用什么查询来遍历表,以便获得所需的行集。

1 个答案:

答案 0 :(得分:0)

我相信有三种方法可以做到这一点:(我将在很高的层次上解释)

  1. 您可以创建大小限制为3的队列,并将这些行作为流读入。一旦队列达到最大大小3,执行处理,弹出队列中的第一个元素,然后继续流。 (更有效率)

  2. 您需要一个迭代器,并为每组必须执行的3个ID重置光标。

  3. 由于您的表相对较小(不会对较大的表建议),请将整个数据库加载到数据结构/内存中。也许为行创建一个对象并使用ORM将行映射到对象。然后你只需要迭代每个对象或一组3个对象,并进行必要的处理。