同时在数据库中,返回当前页需要显示的数据,主要有以下方法:
a.使用mysql控制:
select * from user
order by
limit m, n
结果返回的是第m+1行到第n行的数据集。
select * from user
order by Host
limit 1, 5
返回的是第2行到第5行的数据集
b.使用sqlserver
SELECT *
FROM (SELECT TOP m *
FROM (SELECT TOP n *
FROM Customers) A
ORDER BY CustomerID DESC) B
ORDER BY CustomerID
获得的结果集数据为第n-m+1行到第n行。
对整个过程的解释:
首先按照升序得到前n行的结果集A,然后按照降序从A中得到后m行的结果集B,最后按照升序对B进行重新排序,返回结果集。其中CustomerID为主键,比如:
SELECT *
FROM (SELECT TOP 5 *
FROM (SELECT TOP 10 *
FROM Customers) A
ORDER BY CustomerID DESC) B
ORDER BY CustomerID
的意思就是返回包含第6行到第10行的数据结果集。
c.使用Oracle:
select * from (select rownum r ,* from test) tt
where tt.r > 50 and tt.r <= 100;