mysql分页技术 中用到的关键字

mysql分页技术 中用到的关键字,第1张

mysql的limit是可以指定位置开始,然后还可以指定去多少调记录的。

select * from users limit 1,10就是从第一条,取10条。

select * from users limit 10,10就是从第十条,取10条。

怎么取都行。你看看。

楼主问的是mysql下的吧

"QUERY_SQL

limit

?,?"

QUERY_SQL

就是查询语句,比如select

sno,sname

from

student

limit

1,15;

使用limit关键字,第一个"?"是起始行号

第二个"?"是返回条目数

=====================================================

另外提供给LZ其他数据库的分页语句

Oracle

SELECT

*

FROM

(

SELECT

A.*,

ROWNUM

RN

FROM

(QUERY_SQL

)

A

WHERE

ROWNUM

<=

?)

WHERE

RN

>=

结合rownum关键字,利用嵌套三层select

语句实现。第一个"?"表示终止行号,

第二个"?"表示其实行号

==============================================

Sql

Server

尚无通用语句

可使用top

n来返回前n条记录或使用存储过程

================================================

DB2

假设查询语句:select

t1.*

from

t1

order

by

t1.id;

分页语句可为:

"select

*

from

(

select

rownumber()

over

(order

by

t1.id)

as

row_,

t1.*

from

t1

order

by

t1.id)

as

temp_

where

row_

between

?+1

and

?"

返回两个"?"之间的记录

===================================================

InterBase

“QUERY_SQL

row

?

to

?”

返回两个"?"之间的记录

PostgreSQL

“QUERY_SQL

limit

?

offset

?”

第一个"?"为起始行号,第二个"?"代表

返回记录数

=======================================================

1、首先我们建立一个表表的数据,这个表里有25条数据,id从1到25。(下图是部分截图)

2、要分页数据,首先我们假设一页有10条数据,我们可以用mysql的 limit关键字来限定返回多少条数据。并且用order by来排序数据,这里用 id来排序。所以第一页的sql可以如图这样写。

3、执行后得到的数据如图,就是 id从1到10的前10条数据,因为我们是按id升序来排序的。

4、上面第一页的sql是简化的写法,完整的写法如图,得到的结果和上图的一模一样。代码里 limit 0, 10 的意思是从第一条数据开始,取10条数据。(注意的是第一条数据是从0开始的)

5、那么第二页的数据,关键是要知道是从哪一条数据开始,可以用这个公式得到: (页码-1)  * 每页显示多少条,即 (2-1) * 10 = 10, 所以sql语句如图, limit 10, 10。

6、执行后,结果正确,得到id从11到20的10条数据。

7、同理第三页数据的sql如图,<br/>就是 limit 20, 10。

8、查询的结果如图,因为这页只剩下5条数据了,所以只显示5条数据。如果你有更多页的数据,后面的数据只需要按上面的公式,得到从哪行开始,就可以写对应的sql语句了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10030382.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存