MySQL/MySQL icia 29일차

MySQL 페이징이란?

swkn 2023. 4. 3. 16:53

페이징이란?

MySQL은 Oracle에 비해 페이징을 구현하기 쉽다.

속성을 추가하지 않고 출력위치를 설정할 수 있기 때문이다.

limit와 offset을 활용하여 페이징을 구현한다.

일반적으로 게시판 같은 것들을 만들 때 페이징 처리를 많이 한다.

만들어놓은 게시판 데이터를 이용해 활용해 보겠다.

 

 

 

MySQL  orders , limit , offset 

간단하게 정의하자면

limit = 행을 가져올 숫자

offset = 어디서부터 그 행을 가져올 것인지

라고 정의할 수 있다.

select * from [테이블명] orders limit A;

A만큼 행을 출력한다.

 

select * from [테이블명] orders limit A offset B

이 쿼리는 (B+1) 행부터 A행만큼 출력하겠다는 뜻이다.

 

select * from board_table orders order by id desc limit 3;

board_table 테이블에서 id 내림차순으로 정렬하며 , 행은 3개를 가져온다는 뜻이다.

뒤에서 3개를 가져와서 출력했다.

 

주의점 : orders와 order by가 헷갈릴 수도 있을 것 같다.

 

select * from board_table orders order by id desc limit 3 offset 3;

3+1 행부터 3개만큼 출력하겠다는 쿼리문이다.

4번째부터 3개를 불러와서 출력했다.

 

select * from board_table orders order by id desc limit 3 offset 6;

6+1 행부터 3개만큼 출력하겠다는 쿼리문이다.

7번째부터 끝까지 출력되었다.

3개만큼 출력이지만 남은 행이 2개밖에 없기 때문에 2개만 출력된다.