8

如果最后一条记录是记录 35,如何获取表的记录 34?

4

2 回答 2

22

最简单的方法

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

这将从第二个 LIMIT 1,1 开始选择一条记录,表示先跳过并选择下一个

必须完成 order by,以便 last 是 first 提到的 col 很可能是 id

如果您知道所需记录的编号,但为什么不能选择 id=34 的位置?

于 2012-12-18T03:22:09.070 回答
15

如果您知道有 35 条记录,则需要limit 1 offset 34.

如果要从任何集合中获取倒数第二个元素,可以反转集合的顺序并选择一个元素,偏移一个元素。您可以自己实现这一点,首先选择逆序集合的前两个元素,然后反转集合并选择第一个元素:

select * from
  (select * from my_table order by id desc limit 2) table_alias
order by id limit 1
于 2012-12-18T03:22:09.997 回答