asp.net下經典資料庫記錄分頁代碼

來源:互聯網
上載者:User

1、
SELECT TOP PAGESIZE NEWSTITLE

FORM NEWSINFO WHERE NEWSID NOT IN

(SELECT TOP (PAGE-1)* PAGESIZE NEWSID FROM NEWSINFO

WHERE Auditing=1 and NEWSBREED='企業新聞' order by NEWSID DESC)

AND Auditing=1 and NEWSBREED='企業新聞' order by NEWSID DESC

其中:PAGE表示當前頁數,PAGESIZE表示頁的大小;這裡利用了NOT IN,不複合SARG,但總比一次讀取全部的記錄要好的多。

2、符合 SARG的代碼

針對本人的執行個體還有一個更好的方案:因為NEWSID欄位是自增欄位,對於NOT IN 語句進行如下的改造,並不影響結果。但速度提高了很多

SELECT TOP PAGESIZE NEWSTITLE

FORM NEWSINFO WHERE NEWSID <

(SELECT MIN(NEWSID) FROM (SELECT TOP (PAGE-1) * PAGESIZE NEWSID FROM NEWSINFO WHERE Auditing=1 and NEWSBREED='企業新聞' order by NEWSID DESC) AS TB)AND Auditing=1 and NEWSBREED='企業新聞' order by NEWSID DESC

【說明】
對於在多處使用分頁功能的web 應用程式,把SQL語句改為預存程序將會更好。

請大家積极參与討論分頁的演算法,並把好的方案與大家分享。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.