如何分批次取数据库数据?

来源:百度知道 编辑:UC知道 时间:2024/06/20 15:19:40
如果数据量太大,比如说每次取30条数据。sqlserver和mysql各是怎么实现的?最好有代码

数据库分页嘛,很简单,看下面的代码

分页方案一:(利用Not In和SELECT TOP分页)
语句形式:
SELECT TOP 10 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 20 id
FROM TestTable
ORDER BY id))
ORDER BY ID
--SELECT TOP 20 id FROM TestTable ORDER BY id 查出前20条记录
--查出所有记录中不在前20条记录之外的前10条记录

SELECT TOP 页大小 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 页大小*页数 id
FROM 表
ORDER BY id))
ORDER BY ID
-------------------------------------
分页方案二:(利用ID大于多少和SELECT TOP分页)
语句形式:
SELECT TOP 10 *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 20 id
FROM TestTable
ORDER BY id) AS T))
ORDER BY ID
--查出所有记录中不在前20条记录的最大值

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

-------------------------------------
分页方案三

select top 50