我想从MySQL表中一次选择一条记录。我在上面找到了类似的帖子,所以这里-
How to select records one by one without repeating
但是,在我的例子中,表的大小不是固定的,数据会不断地添加到表中,并且我希望从该表中一次选择一条记录。此外,我还使用python连接到mysql数据库并对每条记录进行处理。有什么建议吗?
附注:表的大小非常大,因此每次我都无法计算表中的记录数量
发布于 2012-06-16 05:02:37
此功能并未内置到SQL中。
如果表上有一个密集的、递增的索引列,那么只需执行以下操作:
i = 0
while True:
# your usual select here, but with "and MyIndexColumn = %d' % (i,)对于某些数据库,无论您是否愿意,都有这样一个内置的列,通常称为"RowID“或"Row ID";如果没有,您总是可以显式地添加这样一个列。
如果可以跳过这些值(通常它们可以跳过,例如,如果没有其他原因,只是因为某人可以从中间删除一行),那么当然,您必须能够处理返回0行的select。
唯一的问题是没有办法知道你什么时候完成了。但这是你最初的问题陈述中固有的:数据是不断添加的,而你事先不知道它的大小,所以你怎么能知道呢?如果您需要知道生成器何时完成,它必须以某种方式(可能通过数据库中的另一个表)为您提供它创建的最高行If。
https://stackoverflow.com/questions/11057759
复制相似问题