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语句了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)