Mysql 比较两个连续行的字段值,并通过此比较筛选结果

Mysql 比较两个连续行的字段值,并通过此比较筛选结果,mysql,Mysql,我有一张有DATETIME列的桌子 在正常情况下,我用当前时间每小时插入一行,因此我有时间间隔为1小时的行,例如2018-01-28 09:00:00、2018-01-28 10:00:00等 我的问题是,有时我的代码在几个小时内没有插入一行,所以我有一个时间间隔,间隔突然增加 我需要的是一种只选择最新连续行的方法,间隔为1小时 例如,如果我有时间2018-01-28 10:00:00、2018-01-28 09:00:00,然后是2018-01-28 05:00:00,则查询应该只获取前两个,

我有一张有DATETIME列的桌子

在正常情况下,我用当前时间每小时插入一行,因此我有时间间隔为1小时的行,例如2018-01-28 09:00:00、2018-01-28 10:00:00等

我的问题是,有时我的代码在几个小时内没有插入一行,所以我有一个时间间隔,间隔突然增加

我需要的是一种只选择最新连续行的方法,间隔为1小时

例如,如果我有时间2018-01-28 10:00:00、2018-01-28 09:00:00,然后是2018-01-28 05:00:00,则查询应该只获取前两个,而不获取其他内容


有办法做到这一点吗

您可以使用自连接来比较同一表中不同行的值。 像这样的事情应该可以做到:

SELECT (t2.field_to_compare - t1.field_to_compare) AS your_interval
FROM your_table t1
INNER JOIN your_table t2 ON t1.field_to_compare < t2.field_to_compare
ORDER BY t1.field_to_compare;
选择(t2.field\u to\u compare-t1.field\u to\u compare)作为您的\u间隔
从您的表t1
在t1.field\u-to\u-compare
请参见