ホームページ >トピック >Access >アクセスデータベースページングメソッドの概要

アクセスデータベースページングメソッドの概要

王林
王林転載
2021-01-22 10:50:444991ブラウズ

アクセスデータベースページングメソッドの概要

データベース レコードが多数あるため、クエリ結果をページに表示する必要があります。 Access データベースのページング方法は次の 2 つです。

(学習ビデオ共有: プログラミング入門)

1. クエリ結果のページング メソッドにアクセスする 1

1. メソッド

ページあたりのレコード数が CntPerPage であるとします。ページ Page のクエリ結果を取得するには、次の SQL ステートメントを使用します。

SELECT * FROM (
SELECT TOP CntPerPage * FROM(
SELECT TOP Page*CntPerPage * FROM TableName WHERE Query_Conditionm ORDER BY OrderField
) ORDER BY OrderField DESC
) ORDER BY OrderField

TableName はテーブル名、Query_Condition はクエリ条件、OrderField は並べ替えに使用されるフィールド名です

2. 原則

ネストされた 3 ステップ クエリ:
最初のステップのクエリ: 現在のページと前のすべてのページのレコードをクエリし、並べ替えフィールドで降順に並べ替えます。

SELECT TOP Page*CntPerPage * FROM TableName WHERE Query_Conditionm ORDER BY OrderField

2 番目のステップのクエリ: クエリしたばかりのレコードの前の CntPerPage をクエリします (すでに降順に配置されています) レコードをクエリします (降順のままにしてください)。これらはページ

SELECT TOP CntPerPage * FROM( 第一步查询结果 ) ORDER BY OrderField DESC

上のすべてのレコードです。 クエリの 3 番目のステップ: 前のクエリは、実際にはページ上のすべてのレコードをクエリしています。この 3 番目のステップは、取得したばかりのデータを正のシーケンスに配置するだけです。順序が必要ない場合、またはプログラム内に他のデータの並べ替え処理がある場合、このステップは省略できます。

SELECT * FROM ( 第二步查询结果 ) ORDER BY OrderField

3. 例

A Student テーブルでは、年齢が 20 歳未満のすべてのレコードをクエリし、名前順に並べ替え、ページあたりのレコード数を 100 にしたいとします。 5 ページのクエリを取得するには、次の SQL ステートメントを使用します。

SELECT * FROM (SELECT TOP 100 * FROM( SELECT TOP 500 * FROM Student  WHERE age<20 ORDER BY name ) ORDER BY name DESC) ORDER BY name

2. インターネットで一般的に使用される NOT IN 方式

インターネットでページング方式を検索する場合、これが最も一般的な方式です。
方法:

SELECT TOP CntPerPage * FROM TableName WHERE Query_Conditionm AND id NOT IN (
SELECT TOP (Page-1)*CntPerPage id FROM TableName WHERE Query_Conditionm ORDER BY id
) ORDER BY id

原則:
2 ステップ クエリ:
最初のステップ: このページの前にあるすべての対象となるレコード ID を選択します。

SELECT TOP (Page-1)*CntPerPage id FROM TableName WHERE Query_Conditionm ORDER BY id

2 番目のステップ: クエリ条件を追加します。 「選択した ID のクエリ結果に ID がありません」と指定して、最初の CntPerPage レコードを取得します。この方法では、クエリ結果によって最初の Page-1 ページのすべてのデータがフィルタリングされ、次に Page-1 のデータが選択されます。 . すべての記録。

SELECT TOP CntPerPage * FROM TableName WHERE Query_Conditionm AND id NOT IN (第一步查询结果) ORDER BY id

3. ページングクエリの効率

2つの方法の実際のテスト効率はほぼ同じですが、個人的には2番目の方法のNOT IN判定の効率はそれほど高くないはずだと思います高すぎるため、レコードの量が比較的多い場合は、最初の方法の方が効率的であると感じます。

関連する推奨事項: アクセス データベース チュートリアル

以上がアクセスデータベースページングメソッドの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。