php - 如何获取max id之前的数据

标签 php mysql sql

我正在做一个有公告的信息系统,所以我想从公告表中获取数据,首先应该是具有最大 ID 的数据,因为它是最新的公告,这是我的代码:

SELECT image FROM announce where id=(SELECT max(id) FROM announce);

现在我想获取最大 id 之前的数据,我在这里使用这段代码:

SELECT image FROM announce where id=(SELECT max(id)-1 FROM announce);

但是它只在没有被删除的行时有效,如果有一些被删除的行它就不起作用,比如 max id 是 10 并且 id 的 9,8,7 被删除。也就是说现在的id是:1,2,3,4,5,6,10,我怎么才能得到id 6,5,4,3,2,1中的数据呢?

最佳答案

如果您按降序 (DESC) ORDER 查询,并且 OFFSET 为 1 (OFFSET 1),你会得到倒数第二行。两个的偏移量将给出之前的行,依此类推。这也使用了 LIMIT 1,所以我们只得到一行。 LIMIT 1, 1LIMIT 1 OFFSET 1 相同。

SELECT image
FROM announce
ORDER BY id DESC
LIMIT 1, 1

关于php - 如何获取max id之前的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45958194/

相关文章:

php - Lumen:如何使用 Eloquent 获取子表列表?

php - Composer 安装 "PHP Warning: PHP Startup: Unable to load dynamic library ' gd 2'"

sql - 使用 JOIN sql 从 2 个不同的表中获取数据。代码点火器

c# - 在嵌套方法中实现嵌套事务的方法

c# - 用LINQ查询基本问题

sql - 您询问的SQL面试问题

php - 查询列中的多个值

php - Mysql 更新数据库,其中日期 == -15 来自当前

mysql - 如何在表中为所有具有相同名称的记录设置相同的列ID号

java - JTable 重复结果