몇 가지 일반적인 데이터베이스 페이지 간단한 문 (오프셋 .... 가져 오기)

그것은 일부 데이터베이스 개발에 온 개발은 매우 일반적이지 키워드, 온라인 조금, 사실, 다양한 데이터베이스를 사용하는 검색입니다 매김 문제는 잔소리 질문이었다. 상관없이 어떤 사이트 개발의 종류로는, 검색 기능을 포함으로, 더 문제 페이징보다는 아무것도 포함하지 않습니다.

예를 들어, 오라클 매김 :

* 선택  행 ( 선택 a. * ROWNUM RC  에서表名  여기서 ROWNUM <= endRow에)는  여기서 a.rc> = startrow

선택 A1 * A1 여기서부터 시작 페이지와 RN 사이 ENDPAGE. (일부 학생 * ROWNUM RN에서 학생.) (使用 较多)

DB2 매김 :

* 선택  행 ( 선택 ROWNUMBER () 이상 ()  RC로서,. *  행 ( 선택 *  로부터表名  순서  에 의해列名)  로서 a)  여기서, RC  startrow 사이  및 endRow에

MySQL 데이터베이스 페이징에서 :( 느낌이 모두)는 가장 단순하고 균일 한 표현이다

WHERE 테이블 ... LIMIT 10 SELECT * FROM 10 # 복귀 라인을 이전을
WHERE 테이블 ... LIMIT 0,10 SELECT * FROM 10 # 복귀 라인을 이전을
WHERE 테이블 ... LIMIT 10, 20 SELECT * FROM # 반환 행 10-20을

그리고 SQLSERVER 매김의 다양한 :

이것은 일반적 ROW_NUMBER () 함수에서 사용되지만 상기 SqlServer2005 및 지원되는

여기서 A1 ROWNUMBER> 시작 페이지 (a부터 선택 ROW_NUMBER ()에 의해 ID (순서) ROWNUMBER *) 발 pagenum 상단의 *를 선택

* 선택 행 (선택 ROW_NUMBER () 위에 발 (ID별로 순서) ROWNUMBER *) 여기서, A1 ROWNUMBER> 시작 페이지 및 ROWNUMBER <ENDPAGE + 1

* 선택 행 (선택 ROW_NUMBER () 위에 발 (ID별로 순서) ROWNUMBER *) A1 + 1 여기서, 시작 페이지 및 ENDPAGE 사이 ROWNUMBER

또한이 :

존재하지 어디에서 상단의 pagenum *을 선택하여 주문 번호 (ID별로 주문 (일부 상위 30 ID) 여기서, A1 = a1.id a.id 1 선택)

하지만 내가하고 싶은 말은 페이징 방법은 많은 사람들이 문제가되지 않습니다이다 :

 

ID로 表 위해 SELECT * FROM *이 pagenum 행이 다음 pagenumrows 만 FETCH PageIndex를 OFFSET

이 방법은 매우 간단하지 않다, 그러나 이것은에서 모두 위의 SQL 서버 2012에서만 사용 가능하며, 논리적 읽기 수 이상이 응답 시간 , 의 구현에 실제 행 수 와 같은 모양과 같은 주요 매개 변수, SQL 서버 2012이 제공하는 OFFSET / FETCH ROW_NUMBER () 모드보다 다음 페이지 매김이 크게 향상되었습니다.

참고 :에 의해 순서를 사용해야합니다이 방법을 사용, 그렇지 않으면 구문 오류가있을 것입니다.

추천

출처www.cnblogs.com/mingjianchen/p/12079762.html