假设我的表包含两列" id" (类型是字符变化(22))和"时间" (类型是没有时区的时间戳)。
现在我在表格中有一些数据如下,
id time
P001 2015-02-04 10:00:00
P002 2015-02-04 10:00:00
P003 2015-02-04 10:00:00
P004 2015-02-04 10:10:00
P005 2015-02-04 11:00:00
获取第一行的查询将是:
select * from <tablename> order by time, id limit 1;
在此之后,将获得具有id值的下一行的查询&#34; P002&#34;
答案 0 :(得分:1)
一般情况下你会用偏移来做,但是如果在time, id
上有一个索引,你可以对数据库稍微提高一些效率(如果你有数百万行,那么真的很明显)。
标准解决方案:
select * from <tablename>
order by time, id limit 1 offset 1;
索引(通常更快)的解决方案:
select * from <tablename>
where time >= '2015-02-04 10:00:00' and id > 'P001'
order by time, id limit 1;