SqlServer,ACCESS最快的分頁函式

2021-04-21 10:31:59 字數 1434 閱讀 2352

/// 

/// 對有集聚索引的表(例如表具有唯一值的主健)獲取分頁的sql

/// 

/// 表名稱

/// 要選擇的列表字段,用逗號分隔

/// 主鍵字段

/// 條件

/// 是否倒排

/// 頁大小

/// 頁碼

/// 總記錄數

/// 

public

static

string getsqlpagebypk(string tablename,string selectfields,string pkname,string condition,bool isdesc,int pagesize,int pagenumber,int allcount)

else

// int icurrcount = (pagenumber - 1) * pagesize;

if (icurrcount + pagesize > allcount)

pagesize = allcount - icurrcount;

string sql = strsqltemp.replace("@size", pagesize.tostring ())

.replace("@fields", selectfields)

.replace("@table", tablename)

.replace("@pk", pkname)

.replace("@condition",condition);

if(pagenumber>1)

sql = sql.replace("@currcount", icurrcount.tostring ());

return sql;

}* 最快速的 分頁 函式

適用於有唯一值 的集聚索引的快速分頁,可以適用於千萬級別的分頁

演算法如下:

--最快的分頁演算法 ,使用於2-n 頁 倒序,當前查詢的是第 3 頁

--10=(3-1)*2

select top 5 *

from tb

where id <

(select min(id) from

(select top 10 id from tb order by id desc) as t

)order by id desc

--------------

--最快的分頁演算法 ,使用於2-n 頁 公升序,當前查詢的是第 3 頁

--10=(3-1)*2

select top 5 *

from tb

where id >

(select max(id) from

(select top 10 id from tb order by id asc) as t

)order by id asc

注:需要計算最末頁的數量

PHP實現仿Google分頁效果的分頁函式

分頁函式 param int total 總頁數 param int pagesize 每頁幾條 param string pkey url中頁面變數名稱 param string url 基礎url,其中的會被替換為頁碼 依賴函式 request uri httpint 當前頁超範圍置為1 bod...

PHP自練專案之數字與文字的分頁效果在函式中實現

param sql param size function page sql,size else else pagesize size num num rows query sql if num 0 else if page pageabsolute pagenum page 1 pagesize ...

做個最快樂的女人

2006.9.10 16 58 最快樂的女人,就是學會把痛苦忘得一乾二淨。痛苦得不能自已的時候,不妨做一回外科醫生,拿起手術刀來,解剖那個令你痛苦萬分的男人。為什麼在愛情的遊戲中,受傷的大多是女人,男人總是能輕鬆的一搖頭,就把自己扮得極酷極瀟灑。是因為男人太了解女人需要什麼,喜歡什麼。聰明的男人常常...