Fork me on GitHub
摘要: 通用二分法分页存储过程,水稻并不是很懂存储过程,这段procedure起初也并非原创,但原版总是有些小问题,无奈之下水稻只好自己从头到尾把代码重写一遍,终于改出了一个比较完美的版本,此版本支持多表连接(要在调用前自己join好),支持distinct(我发现多数分页存储过程都不能完美的支持distinct),支持多字段排序(需要自行准备与原始排序完全相反的排序列表,否则取不到真实的记录),采用@ID not in模式,适用于不是以数值为主键的结构。 这里的大致思路就是取出不在前几页中的前@pagesize个记录,而之所以叫二分法,是对于后一半数据的处理是利用了反向排序来实现的,也就是利用反向排序使得处理后半部分记录时也只是处理一半的记录,这相显然会提高些效率。 这段代码据说效率还挺高,水稻没亲自测试过效率。 阅读全文
posted @ 2009-09-01 15:06 豌豆爸爸Aaron 阅读(1736) 评论(8) 推荐(1) 编辑