您的位置:主页 > 学无止境 > PHP >

PHP 简单又高效的Access分页语句

2019-01-01作者:文昕宇来源:未知次阅读

Access实现分页其实也可以在查询语句里面做。

除了流行的top分页法之外,其实还有一种更简单,更容易理解,并且效率也不低的分页法。

先来一段传统的top分页法。

SELECT TOP 10 *
FROM TestTable
WHERE (ID >=
(SELECT MAX(id)
FROM (SELECT TOP 21 id
FROM TestTable
ORDER BY id) AS T))
ORDER BY ID

原理:

SELECT TOP 页大小 *
FROM TestTable
WHERE (ID >=
(SELECT MAX(id)
FROM (SELECT TOP (页大小*(页数-1)+1) id
FROM 表
ORDER BY id) AS T))
ORDER BY ID

这种分页法效率不错,不过组合查询语句比较麻烦,尤其是当附带条件多的时候,看得人头脑发晕。参考:Sql分页的三种方法。其中的第一种采用Not In方式,效率很差,坚决反对使用。第三种方法,使用游标存储过程,在Access数据库中不通用。

下面介绍一种更简单的分页法

select * from news where nid between
(SELECT min(nid) from
(select top 4 nid from newsdata order by nid desc))
and
(SELECT min(nid) from
(select top 1 nid from newsdata order by nid desc))
order by nid desc

利用top和min函数分别找出分页的起始ID和结束ID,如果要按照升序排列,就要用top和max来找出起始ID和结束ID,之后在使用between语句直接选取。注意三个地方的排序方式必须一致,查询条件也必须一致。

凡本站注明“本站”或“投稿”的所有文章,版权均属于文昕宇博客或投稿人,未经本站授权不得转载、摘编或利用其它方式使用上述作品。本站已授权使用的作品,应在授权范围内使用,并注明“来源:文昕宇博客”并附上链接。违反上述声明者,本站将追究其相关法律责任。

编辑:文昕宇 关键词:

网友评论

随机推荐

图文聚集

热门排行

最新文章