Mysql 从表中选择最后x行,并使用选择的最后索引编号(+1)开始下一个相同的查询

Mysql 从表中选择最后x行,并使用选择的最后索引编号(+1)开始下一个相同的查询,mysql,Mysql,我需要每隔5分钟将添加到mysql表中的最后一个数据块捕获到文件中 我需要使用上一个索引号作为下一个查询的开始+1。。等等 基本上,我需要在没有记录重叠的情况下,将唯一记录块捕获到单个文本文件中 即 索引\u没有名字姓氏 1012鲍勃·史密斯 1013安·史密斯 1014迈克·霍普 第一次运行查询将获得一定数量的事件(最多1014个) 下一个查询将在5分钟后自动运行cron?从1015开始 等等等等。。。每5分钟一次 我在万维网上到处寻找答案,但还没有找到答案。我专门寻找上一个查询+1到最后一个

我需要每隔5分钟将添加到mysql表中的最后一个数据块捕获到文件中

我需要使用上一个索引号作为下一个查询的开始+1。。等等

基本上,我需要在没有记录重叠的情况下,将唯一记录块捕获到单个文本文件中

索引\u没有名字姓氏

1012鲍勃·史密斯

1013安·史密斯

1014迈克·霍普

第一次运行查询将获得一定数量的事件(最多1014个)

下一个查询将在5分钟后自动运行cron?从1015开始

等等等等。。。每5分钟一次


我在万维网上到处寻找答案,但还没有找到答案。我专门寻找上一个查询+1到最后一个当前条目的最后一条记录,每5分钟循环一次。

我想如果我实现了这个要求,我会编写一个小程序来运行查询,并将输出输出输出到一个文件中。该程序还将使用某种持久性数据存储文本文件/db/来跟踪最后一条记录

然后,您可以使用cron来调用您的程序


HTH

有一个带有索引号的日志表,并在查询时用最后一个编号更新它。像这样的

Create table index_log(Index_no int)

Insert into index_log(Index_no)
select 1014

select columns from source_table
where index_no>(select index_no from index_log)

Update index_log
set index_no=(select max(index_no) from source_table

您期望的结果是什么?在进行查询时,mysql数据库中有很多文件,每个文件都包含最近的记录块。。。没有重叠的记录。。。基本上是最近5分钟数据库添加的快照。确定。。谢谢我倾向于这个方向,但我认为MYSQL的命令/查询语言可能会起作用。。基本上是在一条直线上:-从db.table_视图中选择*,其中HistoryNo>${LAST_RECORD}按HistoryDate asc排序;>数据库-'date+%Y%m%d-%H%m'。日志。。。。这就是我试图实现的,通过更新一个变量,如前一个查询中的LAST_记录。。注意:语法可能还不正确,因为它只是一个指南。是的,我知道你寻找单行程序解决方案的意思-我总是这样做!:-我不知道dbms有什么方法可以告诉您上次选择了哪些行-我的意思是,即使可以,如果其他人同时运行另一个select会怎么样。我想您可以使用某种“已记录”状态修改模式,在运行select后更新该状态,但在添加新行时,您可能会遇到并发问题,就像您将内容标记为已读一样。