python - 在python中遍历mysql中的行

标签 python mysql iteration

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

最佳答案

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

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

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

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

关于python - 在python中遍历mysql中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31300556/

相关文章:

php - i18n Smarty 变量转换为 lang()

json - BASH JQ 命令

recursion - 方案尾递归/迭代

python - 使用命令行中的 python 文件可执行文件去除空格和注释

python - 自动将数据从 s3 批量加载到 Aurora MySQL RDS 实例

python - 我无法在 python3 shell 中输入字母 "e"

java - 使用 mysql J 连接器连接到 memsql 时出错

python - Python中线程间的通信(不使用全局变量)

mysql - "SELECT COUNT(*)"很慢,即使有 where 子句

mysql - 记录集迭代