如何获取mysql中最后一条之前的最后一条记录?

Posted

技术标签:

【中文标题】如何获取mysql中最后一条之前的最后一条记录?【英文标题】:How to get the last record before the last one in mysql? 【发布时间】:2012-12-05 05:34:01 【问题描述】:

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

【问题讨论】:

【参考方案1】:

最简单的方法

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

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

必须按照最后的顺序进行排序 提到的 col 很可能是 id

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

【讨论】:

如何在 yii2 中使用这个查询?【参考方案2】:

如果你知道有 35 条记录,你想要limit 1 offset 34

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

select * from
  (select * from my_table order by id desc limit 2) table_alias
order by id limit 1

【讨论】:

以上是关于如何获取mysql中最后一条之前的最后一条记录?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用聚合函数在 MySQL 查询中获取分组记录的第一条和最后一条记录?

Javascript - 如何从数组列表中获取最后一条记录? [复制]

如何从 sql 查询中获取第一条和最后一条记录?

如何从 Sqlite 获取最后一条记录?

如何获取最后一条记录/最大值

如何在 SQL 中获取每组的最后一条记录