티스토리 뷰
await this.reviewRepository.find({
where: { writer: id },
skip: size * (page - 1),
take: size
});
// 쿼리빌더 사용 시
await this.postRepository
.createQueryBuilder('post')
.limit(size)
.offset(size * (page - 1))
.getMany()
- size: 한 페이지 당 보여줄 콘텐츠 수
- page: 페이지 번호
offset = size * (page - 1)
게시판을 생각해보면 1페이지는 1~10번, 2페이지는 11~20번, 3페이지는 21~30번, .... 게시글을 가져온다
MYSQL에서 offset은 0일 때 +1인 1번째 row부터, 10일때 +1인 11번째 row부터 가져온다
2페이지에서 11번 게시글부터 불러오려면 offset은 10이어야한다
size = 10, page = 2일 때 offset이 10이 되려면 => size * (page - 1) = 10 * (2 - 1) = 10
limit와 offset에 대해 잘 정리된 블로그 : https://zzang9ha.tistory.com/295
'라이브러리, 프레임워크 > TypeORM' 카테고리의 다른 글
[TypeORM + NestJS] optional 하게 조건절 사용하기 (0) | 2022.08.03 |
---|---|
[TypeORM + NestJS] Unknown column 'distinctAlias.User_id' in 'field list'" 에러 (0) | 2022.07.21 |
[TypeORM + NestJS] Entity metadata was not found 에러 (0) | 2022.07.14 |
[TypeORM] orderBy 문법 (0) | 2022.07.12 |
[TypeORM] 여러 테이블 join 후 특정 컬럼만 가져오기(getRawMany 사용) (0) | 2022.07.05 |
댓글