php+access实现limit查询

虽然切版一直致力于为网站建设公司提供优质的web前端外包开发服务,但是我们也是懂程序的,这一点鲜有人知道,只是我们放弃了二流的程序技术,更愿意把一流的前端开发技术服务更多的人群,关于程序,比如我们就为自己的pm项目管理系统采用了 php+access的冷门搭配开发出来了,其中碰到一个问题,就是access无法像 mysql一样可以limit查询,所以采用了一种另类但可行的方法。

Access实现limit类似的功能的方法这篇文章的内容如下:

Mysql数据库支持LIMIT语句,所以使得翻页易如反掌,比如我们可以这么写:

SELECT * FROM Doc WHERE docSort=‘Java’ LIMIT 0,30

表示从第1条开始取30条记录。但其他数据库都不支持这个语句,所以只能另辟蹊径了,下面就来介绍一下“掐头去尾”法。此方法主要是利用

了Access数据库的排序功能和TOP语句,我们都知道如果要显示前N条记录可以这样写:

SELECT TOP N * FROM Doc

这使用起来很方便。我们还可以扩展一下:

SELECT TOP N * FROM (SELECT TOP 2N * FROM Doc WHERE docSort=’Java’ ORDER BY id DESC) ORDER BY id ASC

到这里我想大家已经都明白了吧,子查询得到逆序排列的前2N条记录,然后把这2N条记录按正序排列得到前N条记录。OK了,这里的前

N条记录,实际上就是我们想要的第N到第2N条记录。下面是一个具体的例子:
注:其中的PageSize(分页的大小)和PageIndex(分页索引,初始假设为0)均为变量,请相应处理。
SELECT * FROM (
SELECT TOP [PageSize] * FROM (
SELECT TOP [PageSize * (PageIndex + 1)] * FROM Doc WHERE docSort=’Java’ ORDER BY id DESC
) ORDER BY id ASC
)ORDER BY id DESC

以上就是我们解决了这一个问题的思路,亲测可用。

切版- 切图网(qietu.com)旗下psd转html,前端外包的“切图客”团体。

共有1条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

客服咨询
客服1
客服2
微信公众号