Php 如何在最大id之前获取数据
我正在做一个有公告的信息系统,所以我想从公告表中获取数据,第一个当然应该是带有max id的,因为它是最新的公告,下面是我的代码:Php 如何在最大id之前获取数据,php,mysql,sql,Php,Mysql,Sql,我正在做一个有公告的信息系统,所以我想从公告表中获取数据,第一个当然应该是带有max id的,因为它是最新的公告,下面是我的代码: SELECT image FROM announce where id=(SELECT max(id) FROM announce); 现在我想在max id之前获取数据,我在这里使用以下代码: SELECT image FROM announce where id=(SELECT max(id)-1 FROM announce); 但它只在没有删除行的情况下才
SELECT image FROM announce where id=(SELECT max(id) FROM announce);
现在我想在max 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
)对查询进行排序,并且偏移量为1(OFFSET 1
),您将获得倒数第二行。偏移量为2会得到前面的行,依此类推。这也使用了限制1
,所以我们只得到一行<代码>限制1,1与限制1偏移量1
相同
SELECT image
FROM announce
ORDER BY id DESC
LIMIT 1, 1
select image
from announce
order by id desc
limit 2
如果您想单独查询它们,可以将limit 2
更改为limit 1,1
,以便第二次查询按您的意愿进行