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
가상의 데이터를 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개를 출력하겠다라고 하였으니
나오지 않는것
도움이 되셨다면 공감클릭! 궁금하신점은 댓글!!
MySQL - if ~ else 조건문 사용하기 : if (0) | 2014.08.24 |
---|---|
MySQL - 널체크(IFNULL 사용하기) (0) | 2014.08.23 |
MySQL SELECT 쿼리로 한꺼번에 다른 테이블에 INSERT 하기 (INSERT ... SELECT ... FROM ...) (0) | 2014.08.12 |
MySQL 인코딩 UTF-8 설정하기 [한글깨짐문제 해결] (7) | 2014.08.12 |
MySQL 시퀀스 auto_increment 생성 및 초기화하기 (0) | 2014.08.11 |