데이터베이스 레코드가 많기 때문에 쿼리 결과를 페이지 단위로 표시해야 합니다. 다음은 액세스 데이터베이스에 대한 두 가지 페이징 방법입니다.
(학습 영상 공유: 프로그래밍 입문)
1. 액세스 쿼리 결과 페이징 방법 1
1. 방법
페이지당 쿼리 결과를 CntPerPage로 가져오려면 다음을 사용합니다. 다음 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
쿼리의 두 번째 단계: 방금 쿼리한 레코드 중 첫 번째 CntPerPage 레코드를 쿼리합니다(이미 내림차순으로 정렬됨)(내림차순 유지).
SELECT TOP CntPerPage * FROM( 第一步查询结果 ) ORDER BY OrderField DESC
쿼리의 세 번째 단계: 이전 쿼리 단계에서는 실제로 페이지의 모든 레코드를 쿼리했지만, 방금 얻은 데이터를 내림차순으로 정렬했습니다. 주문하다. 순서가 필요하지 않거나 프로그램에 다른 데이터 정렬 프로세스가 있는 경우 이 단계를 생략할 수 있습니다.
SELECT * FROM ( 第二步查询结果 ) ORDER BY OrderField
3. 예를 들어
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
두 번째 단계: "ID가 방금 선택한 ID가 아닙니다"라는 쿼리 조건을 추가합니다. 쿼리 결과"에서 첫 번째 CntPerPage 레코드를 가져옵니다. 이런 방식으로 쿼리 결과는 첫 번째 Page-1 페이지의 모든 데이터를 필터링한 다음 Page-1의 모든 레코드를 선택합니다.
SELECT TOP CntPerPage * FROM TableName WHERE Query_Conditionm AND id NOT IN (第一步查询结果) ORDER BY id
3. 페이징 쿼리 효율성
두 방법의 실제 테스트 효율성은 거의 동일하지만, 개인적으로 두 번째 방법의 NOT IN 등 판단 효율성이 너무 높으면 안 된다고 생각합니다. 레코드의 양이 상대적으로 많은 경우 사용해야 합니다. 첫 번째 방법이 더 효율적입니다.
관련 권장 사항: 데이터베이스 액세스 튜토리얼
위 내용은 액세스 데이터베이스 페이징 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!