如何在mysql中获取倒数第二个记录?

8
如果最后一条记录是第35条,我该如何获取表格的第34条记录?
2个回答

24

最简单的方法

SELECT * FROM tab ORDER BY col DESC LIMIT 1,1

这将选取第二个记录,LIMIT 1,1表示跳过第一个并选择下一个。

必须按照最后一项为第一项的顺序进行排序,所提及的列很可能是id。

但如果您知道要选择的记录编号,为什么不能只选择where id=34?


我该如何在Yii2中使用这个查询? - Mohammad Aghayari

15
如果你知道有35个记录,你想要“限制1偏移34”。
如果你想从任何集合中获取倒数第二个元素,可以反转集合的顺序并选择一个元素,再偏移一个元素。你可以通过首先选择反向排序集合的前两个元素,然后反转集合并选择第一个元素来实现此操作。
select * from
  (select * from my_table order by id desc limit 2) table_alias
order by id limit 1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接