2014/08/15 - [DB/MSSQL] - MS-SQL 2005 이상 row_number() over(order by 정렬조건) 을 이용하여 페이징쿼리를 동작시켜보자


2014/08/15 - [DB/Oracle] - ORACLE 오라클 rownum을 이용하여 페이징 처리하기



mysql의 경우는 limit를이용하여 페이징을 처리 한다.느낌표


샘플 데이터를 기준으로 설명하도록 하겠음.


1.  create table 생성

CREATE TABLE `page_table` (
  `idx` bigint(20) DEFAULT NULL,
  `title` varchar(100) DEFAULT NULL,
  `content` varchar(200) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

2. 가상의 데이터 IMPORT


page_table_data.sql


가상의 데이터를 100개를 생성하여 page_table에 IMPORT 하였다.

그렇다면 이제 페이징 테스트를 해보도록 하겠음.

각 페이지마다 데이터 20개씩 출력해보도록 하겠다.


쿼리는 다음과 같다.

-- 1페이지
SELECT * 
FROM page_table
LIMIT 0, 20;
-- 2페이지
SELECT * 
FROM page_table
LIMIT 20, 20;
-- 3페이지
SELECT * 
FROM page_table
LIMIT 40, 20;
-- 4페이지
SELECT * 
FROM page_table
LIMIT 60, 20;
-- 5페이지
SELECT * 
FROM page_table
LIMIT 80, 20;
-- 6페이지
SELECT * 
FROM page_table
LIMIT 100, 20;


3, 실 행 하 기



1페이지



2페이지


3페이지


4페이지


5페이지


6페이지



LIMIT 사용법


SELECT [col1,col2...col n]
FROM table명
WHERE[AND] 조건절....
LIMIT 인덱스 값(0부터 시작) , 한번에 출력할 수 


※ 상단 SELECT쿼리를 실행한 화면을  보면 마지막 6페이지는 나오지 않을것이다.

    이유 - 전체 데이터의 마지막 인덱스 값이 99인대 100부터 20개를 출력하겠다라고 하였으니 

             나오지 않는것 슬퍼2



슈퍼맨슈퍼맨슈퍼맨



도움이 되셨다면 공감클릭! 궁금하신점은 댓글!!