看板 PHP 關於我們 聯絡資訊
我的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)
JoeHorn:第二個作法比較好,而且可以偷偷塞進 session ... :p 11/09 04:22
justinC:1,2兩種做法都需要做,因為要這兩項功能阿.. 11/09 12:58
justinC:塞入SESSION...好處可以讓它存取速度更快? 11/09 12:58
justinC:請問怎麼把結果塞入session,我把result存起來,好像沒有用 11/10 02:26
buganini:要先fetch出來 result型態是resource不能塞進session 11/10 05:03
buganini:要能serialize才能塞 11/10 05:03
buganini:不過我不贊成把東西亂塞session 11/10 05:28
buganini:我只要把cookie關掉 然後拼命refresh 11/10 05:28
buganini:server那邊的session file就會長很大 11/10 05:29
buganini:而且db那邊都會做好cache了吧 11/10 05:30
justinC:session的確會有風險,不用limit,用data_seek移動 11/11 00:47
justinC:好處是可cache住,這個作法適合搜尋 11/11 00:49