> 주제 > Access > 액세스 데이터베이스 페이징 방법 소개

액세스 데이터베이스 페이징 방법 소개

王林
풀어 주다: 2021-01-22 10:50:44
앞으로
5128명이 탐색했습니다.

액세스 데이터베이스 페이징 방법 소개

데이터베이스 레코드가 많기 때문에 쿼리 결과를 페이지 단위로 표시해야 합니다. 다음은 액세스 데이터베이스에 대한 두 가지 페이징 방법입니다.

(학습 영상 공유: 프로그래밍 입문)

1. 액세스 쿼리 결과 페이징 방법 1

1. 방법

페이지당 쿼리 결과를 CntPerPage로 가져오려면 다음을 사용합니다. 다음 SQL 문.

1

2

3

4

5

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단계 쿼리:
쿼리의 첫 번째 단계: 현재 페이지와 이전의 모든 페이지 레코드를 쿼리하고 정렬 필드를 기준으로 내림차순으로 정렬합니다.

1

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

로그인 후 복사

쿼리의 두 번째 단계: 방금 쿼리한 레코드 중 첫 번째 CntPerPage 레코드를 쿼리합니다(이미 내림차순으로 정렬됨)(내림차순 유지).

1

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

로그인 후 복사

쿼리의 세 번째 단계: 이전 쿼리 단계에서는 실제로 페이지의 모든 레코드를 쿼리했지만, 방금 얻은 데이터를 내림차순으로 정렬했습니다. 주문하다. 순서가 필요하지 않거나 프로그램에 다른 데이터 정렬 프로세스가 있는 경우 이 단계를 생략할 수 있습니다.

1

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

로그인 후 복사

3. 예를 들어

Student 테이블의 경우 나이가 20세 미만이고 이름순으로 정렬된 모든 레코드를 쿼리하고 페이지당 레코드 수가 100개입니다. 페이지에서 쿼리 결과를 얻으려면 5, 다음 SQL 문을 사용합니다.

1

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 방식

인터넷에서 페이징 방식을 검색할 때 가장 많이 사용하는 방식입니다.
방법:

1

2

3

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를 모두 선택합니다.

1

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

로그인 후 복사

두 번째 단계: "ID가 방금 선택한 ID가 아닙니다"라는 쿼리 조건을 추가합니다. 쿼리 결과"에서 첫 번째 CntPerPage 레코드를 가져옵니다. 이런 방식으로 쿼리 결과는 첫 번째 Page-1 페이지의 모든 데이터를 필터링한 다음 Page-1의 모든 레코드를 선택합니다.

1

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

로그인 후 복사

3. 페이징 쿼리 효율성

두 방법의 실제 테스트 효율성은 거의 동일하지만, 개인적으로 두 번째 방법의 NOT IN 등 판단 효율성이 너무 높으면 안 된다고 생각합니다. 레코드의 양이 상대적으로 많은 경우 사용해야 합니다. 첫 번째 방법이 더 효율적입니다.

관련 권장 사항: 데이터베이스 액세스 튜토리얼

위 내용은 액세스 데이터베이스 페이징 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿