Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在最大id之前获取数据_Php_Mysql_Sql - Fatal编程技术网

Php 如何在最大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); 但它只在没有删除行的情况下才

我正在做一个有公告的信息系统,所以我想从公告表中获取数据,第一个当然应该是带有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);

但它只在没有删除行的情况下才起作用,如果有一些删除行,它就不起作用,比如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
,以便第二次查询按您的意愿进行