php mssql 數(shù)據(jù)庫分頁SQL語句
更新時間:2008年12月16日 15:31:11 作者:
php mssql幾條常見的數(shù)據(jù)庫分頁 SQL 語句
我們在編寫MIS系統(tǒng)和Web應(yīng)用程序等系統(tǒng)時,都涉及到與數(shù)據(jù)庫的交互,如果數(shù)據(jù)庫中數(shù)據(jù)量很大的話,一次檢索所有的記錄,會占用系統(tǒng)很大的資源,因此我們常常采用,需要多少數(shù)據(jù)就只從數(shù)據(jù)庫中取多少條記錄,即采用分頁語句。根據(jù)自己使用過的內(nèi)容,把常見數(shù)據(jù)庫Sql Server,Oracle和MySQL的分頁語句,從數(shù)據(jù)庫表中的第M條數(shù)據(jù)開始取N條記錄的語句總結(jié)如下:
SQL Server
從數(shù)據(jù)庫表中的第M條記錄開始取N條記錄,利用Top關(guān)鍵字:注意如果Select語句中既有top,又有order by,則是從排序好的結(jié)果集中選擇:
SELECT *
FROM ( SELECT Top N *
FROM (SELECT Top (M + N - 1) * FROM 表名稱 Order by 主鍵 desc) t1 ) t2
Order by 主鍵 asc
實例:
select * from ( select TOP pagesize * FROM ( SELECT TOP pagesize*cureentpage * from user_table ORDER BY id ASC ) as aSysTable ORDER BY id DESC ) as bSysTable ORDER BY id ASC
例如從表Sys_option(主鍵為sys_id)中從10條記錄還是檢索20條記錄,語句如下:
SELECT *
FROM ( SELECT TOP 20 *
FROM (SELECT TOP 29 * FROM Sys_option order by sys_id desc) t1) t2
Order by sys_id asc
Oralce數(shù)據(jù)庫
從數(shù)據(jù)庫表中第M條記錄開始檢索N條記錄
SELECT *
FROM (SELECT ROWNUM r,t1.* From 表名稱 t1 where rownum < M + N) t2
where t2.r >= M
例如從表Sys_option(主鍵為sys_id)中從10條記錄還是檢索20條記錄,語句如下:
SELECT *
FROM (SELECT ROWNUM R,t1.* From Sys_option where rownum < 30 ) t2
Where t2.R >= 10
MySQL數(shù)據(jù)庫
My sql數(shù)據(jù)庫最簡單,是利用mysql的LIMIT函數(shù),LIMIT [offset,] rows從數(shù)據(jù)庫表中M條記錄開始檢索N條記錄的語句為:
SELECT * FROM 表名稱 LIMIT M,N
例如從表Sys_option(主鍵為sys_id)中從10條記錄還是檢索20條記錄,語句如下:
select * from sys_option limit 10,20
SQL Server
從數(shù)據(jù)庫表中的第M條記錄開始取N條記錄,利用Top關(guān)鍵字:注意如果Select語句中既有top,又有order by,則是從排序好的結(jié)果集中選擇:
SELECT *
FROM ( SELECT Top N *
FROM (SELECT Top (M + N - 1) * FROM 表名稱 Order by 主鍵 desc) t1 ) t2
Order by 主鍵 asc
實例:
select * from ( select TOP pagesize * FROM ( SELECT TOP pagesize*cureentpage * from user_table ORDER BY id ASC ) as aSysTable ORDER BY id DESC ) as bSysTable ORDER BY id ASC
例如從表Sys_option(主鍵為sys_id)中從10條記錄還是檢索20條記錄,語句如下:
SELECT *
FROM ( SELECT TOP 20 *
FROM (SELECT TOP 29 * FROM Sys_option order by sys_id desc) t1) t2
Order by sys_id asc
Oralce數(shù)據(jù)庫
從數(shù)據(jù)庫表中第M條記錄開始檢索N條記錄
SELECT *
FROM (SELECT ROWNUM r,t1.* From 表名稱 t1 where rownum < M + N) t2
where t2.r >= M
例如從表Sys_option(主鍵為sys_id)中從10條記錄還是檢索20條記錄,語句如下:
SELECT *
FROM (SELECT ROWNUM R,t1.* From Sys_option where rownum < 30 ) t2
Where t2.R >= 10
MySQL數(shù)據(jù)庫
My sql數(shù)據(jù)庫最簡單,是利用mysql的LIMIT函數(shù),LIMIT [offset,] rows從數(shù)據(jù)庫表中M條記錄開始檢索N條記錄的語句為:
SELECT * FROM 表名稱 LIMIT M,N
例如從表Sys_option(主鍵為sys_id)中從10條記錄還是檢索20條記錄,語句如下:
select * from sys_option limit 10,20
您可能感興趣的文章:
相關(guān)文章
PHP編程文件處理類SplFileObject和SplFileInfo用法實例分析
這篇文章主要介紹了PHP編程文件處理類SplFileObject和SplFileInfo用法,結(jié)合實例形式分析了文件處理類SplFileObject和SplFileInfo的功能、定義、使用方法與相關(guān)注意事項,需要的朋友可以參考下2017-07-07php使用PDO事務(wù)配合表格讀取大量數(shù)據(jù)插入操作實現(xiàn)方法
這篇文章主要介紹了php使用PDO事務(wù)配合表格讀取大量數(shù)據(jù)插入操作實現(xiàn)方法,涉及php使用excel_reader操作Excel文件及PDO操作數(shù)據(jù)庫的相關(guān)技巧,需要的朋友可以參考下2017-02-02PHP連接MSSQL時nvarchar字段長度被截斷為255的解決方法
這篇文章主要介紹了PHP連接MSSQL時nvarchar字段長度被截斷為255的解決方法,可通過CAST數(shù)據(jù)類型轉(zhuǎn)換來解決,是非常實用的技巧,需要的朋友可以參考下2014-12-12