ホームページ >php教程 >php手册 >php mssqlデータベースページングSQLステートメント

php mssqlデータベースページングSQLステートメント

WBOY
WBOYオリジナル
2016-06-13 12:25:421072ブラウズ

MIS システムや Web アプリケーションなどのシステムを作成する場合、データベースとの対話が必要になるため、データベース内のデータ量が多い場合、すべてのレコードを一度に取得すると多くのシステム リソースが占有されることになります。データがある限りデータベースからレコードを取得します。つまり、ページング ステートメントを使用します。私が使用した内容に基づいて、一般的なデータベース SQL Server、Oracle、MySQL のページング ステートメントと、データベース テーブルの M 番目のデータから開始して N レコードをフェッチするステートメントを次のように要約します。
SQL Server
Top キーワードを使用して、データベース テーブルの M 番目のレコードから始まる N レコードを取得します。 Select ステートメントに top と order by の両方がある場合、並べ替えられた結果セットから選択されることに注意してください。
SELECT *
FROM ( SELECT Top N *
FROM (SELECT Top (M N - 1) * FROM テーブル名 主キー順 desc) t1 ) t2
主キー 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
sys_id asc による順序
Oralce データベース
データベース テーブルの M レコードから始まる N レコードを取得
SELECT *
FROM (SELECT ROWNUM) r,t1.* From table name t1 where rownum where t2.r >= M
たとえば、テーブル Sys_option (主キーは sys_id) から 20 レコードを取得するには、ステートメントは次のとおりです:
SELECT *
FROM (SELECT ROWNUM R,t1.* From Sys_option where rownum Where t2.R >= 10
MySQL データベース
私の SQL データベースは最も単純で、mysql の LIMIT 関数、LIMIT [offset,] 行を使用し、データベース テーブル内の M レコードから始まる N レコードを取得するステートメントは次のとおりです:
SELECT * FROM table name LIMIT M,N
たとえば、テーブル Sys_option( 10 件のレコード (主キーは sys_id) から 20 件のレコードを取得するには、ステートメントは次のようになります。
select * from sys_option limit 10,20

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。