作者justinC (无)
看板PHP
标题[请益] 取得搜寻列数问题
时间Fri Nov 9 01:29:49 2007
我的SQL搜寻语法是
select ... from ...where ....limit a,b
由於资料很多,又需要分页
所以必须用limit依照页面数从第几笔开始显示
问题a变数必须知道这个SQL再不包含limit情况下都全部列数
才能计算出第几页,不然怎麽算出来都只有一页
虽然可以先不加limit,把搜寻到的资料全搜出来再用seek做分页功能
但是可能搜出来的笔数好几万,这个作法在显示时有点没有效率
请问一般的都怎麽设计这类的语法
--------------------------------
因为我的需求必须有全部显示与搜寻显示
刚刚想到一个解法
1.全部显示的列数多用一个select count()语法解决,然後搭配limit
好处不用每次都要搜全部资料
2.搜寻显示的列数就只好全部搜出来後,做data seek移动,
这样也不用每次都要重新搜寻
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.131.75.147
※ 编辑: justinC 来自: 220.131.67.151 (11/09 01:37)
1F:推 JoeHorn:第二个作法比较好,而且可以偷偷塞进 session ... :p 11/09 04:22
2F:推 justinC:1,2两种做法都需要做,因为要这两项功能阿.. 11/09 12:58
3F:→ justinC:塞入SESSION...好处可以让它存取速度更快? 11/09 12:58
4F:推 justinC:请问怎麽把结果塞入session,我把result存起来,好像没有用 11/10 02:26
5F:→ buganini:要先fetch出来 result型态是resource不能塞进session 11/10 05:03
6F:→ buganini:要能serialize才能塞 11/10 05:03
7F:推 buganini:不过我不赞成把东西乱塞session 11/10 05:28
8F:→ buganini:我只要把cookie关掉 然後拼命refresh 11/10 05:28
9F:→ buganini:server那边的session file就会长很大 11/10 05:29
10F:→ buganini:而且db那边都会做好cache了吧 11/10 05:30
11F:推 justinC:session的确会有风险,不用limit,用data_seek移动 11/11 00:47
12F:推 justinC:好处是可cache住,这个作法适合搜寻 11/11 00:49