日期:2014-05-16  浏览次数:20558 次

关于SQLITE 分页查询的疑问,请您指教!!!
本帖最后由 shier2817 于 2014-02-27 10:24:25 编辑
limit offset 这个用法俺懂。。。
但是一般地我们查询并显示的时候,无论是浏览器还是显示的客户端,在所显示的表格都会提示用户:

当前页号/总页号       当前记录/总记录数

而总页号、总记录数,我只知道得用不带 limit offset 的语句才可以查询的到吧?

这也就意味着,我想分页的话,得先不分页查询一次取记录数量,然后再分页查询实际需要的数据,这不是反倒更降低效率和易用性了么???

如果我确实需要 总页号、总记录数,而我的SQLITE还要实现分页,那么最佳的做法是什么呢?

望不吝赐教,多谢!

补充一下:不要在回复里给一些有使用局限性的模块或类,我使用的方式是直接调用 sqlite3.dll 里面的函数来做的,因为我用的是易语言(这个您不知道没关系),但是不要给我一个C或JAVA什么的类,那样对我没意义。。。
------解决方案--------------------
这个是sql server中的分页,不知道适不适合sqlite:

declare @page_size int;
declare @page_num int;

--比如:每页10条记录
set @page_size = 10;

--比如:先取第1页
set @page_num = 1;

select *
from
(
select *,   
       
       (row_number() over(order by @@servername) - 1) / @page_size as pagenum
from sys.objects
)t
where pagenum = @page_num - 1