데이터베이스 레코드가 많기 때문에 쿼리 결과를 페이지 단위로 표시해야 합니다. 다음은 액세스 데이터베이스에 대한 두 가지 페이징 방법입니다.
(학습 영상 공유: 프로그래밍 입문)
1. 액세스 쿼리 결과 페이징 방법 1
1. 방법
페이지당 쿼리 결과를 CntPerPage로 가져오려면 다음을 사용합니다. 다음 SQL 문.
1 2 3 4 5 |
|
TableName은 테이블 이름, Query_Condition은 쿼리 조건, OrderField는 정렬에 사용되는 필드 이름입니다
2. 원리
중첩된 3단계 쿼리:
쿼리의 첫 번째 단계: 현재 페이지와 이전의 모든 페이지 레코드를 쿼리하고 정렬 필드를 기준으로 내림차순으로 정렬합니다.
1 |
|
쿼리의 두 번째 단계: 방금 쿼리한 레코드 중 첫 번째 CntPerPage 레코드를 쿼리합니다(이미 내림차순으로 정렬됨)(내림차순 유지).
1 |
|
쿼리의 세 번째 단계: 이전 쿼리 단계에서는 실제로 페이지의 모든 레코드를 쿼리했지만, 방금 얻은 데이터를 내림차순으로 정렬했습니다. 주문하다. 순서가 필요하지 않거나 프로그램에 다른 데이터 정렬 프로세스가 있는 경우 이 단계를 생략할 수 있습니다.
1 |
|
3. 예를 들어
Student 테이블의 경우 나이가 20세 미만이고 이름순으로 정렬된 모든 레코드를 쿼리하고 페이지당 레코드 수가 100개입니다. 페이지에서 쿼리 결과를 얻으려면 5, 다음 SQL 문을 사용합니다.
1 |
|
2. 인터넷에서 흔히 사용되는 NOT IN 방식
인터넷에서 페이징 방식을 검색할 때 가장 많이 사용하는 방식입니다.
방법:
1 2 3 |
|
원칙:
2단계 쿼리:
첫 번째 단계: 이 페이지 이전에 적합한 레코드 ID를 모두 선택합니다.
1 |
|
두 번째 단계: "ID가 방금 선택한 ID가 아닙니다"라는 쿼리 조건을 추가합니다. 쿼리 결과"에서 첫 번째 CntPerPage 레코드를 가져옵니다. 이런 방식으로 쿼리 결과는 첫 번째 Page-1 페이지의 모든 데이터를 필터링한 다음 Page-1의 모든 레코드를 선택합니다.
1 |
|
3. 페이징 쿼리 효율성
두 방법의 실제 테스트 효율성은 거의 동일하지만, 개인적으로 두 번째 방법의 NOT IN 등 판단 효율성이 너무 높으면 안 된다고 생각합니다. 레코드의 양이 상대적으로 많은 경우 사용해야 합니다. 첫 번째 방법이 더 효율적입니다.
관련 권장 사항: 데이터베이스 액세스 튜토리얼
위 내용은 액세스 데이터베이스 페이징 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!