Background Image
마이그레이션
2008.11.21 17:28

MySQL의 limit 명령어 처리

조회 수 32683 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
다음과 같은 방법으로도 처리할 수 있습니다.
select (select * from a where a where b > 11000) from a rownum between 1 and 10

저의 경우는 서브쿼리입니다..
>
> 결과를 필터링하는 용도로, 그것이 적용되는 위치에 따라서 다음의 세 가지 함수를 지원합니다.
> 현재의 상용 DBMS 중에서는 가장 다양한 옵션을 제공합니다.
> inst_num() - rownum 으로도 표현됨
> groupby_num()
> orderby_num()
>
> 1. inst_num()은 rownum 으로도 표현되며, WHERE 절의 검색 조건을 만족하는 결과 튜플에 적용하여, 이를 필터링 합니다.
> 아래와 같이, WHERE 절의 검색 조건에 inst_num() 검색 조건을 추가하여 기술합니다.
> csql> select inst_num(), a, b from tbl where a > 0 and inst_num() between 2 and 3;
> csql> ;run
>
> === <Result of SELECT Command in Line 1> ===
>
> inst_num() a b
> =======================================
> 2 2 4
> 3 3 6
>
> 2. groupby_num()은 GROUP BY 절이 있는 경우에, WHERE 절을 통과한 결과 튜플을 그룹핑한 결과에 적용하여, 이를 필터링 합니다.
> 예를 들어, 그룹핑한 결과의 두번째, 세번째 튜플을 가져오려면 HAVING 절에 검색조건을 추가하여 기술합니다.
> csql> select groupby_num(), a, count(*) from tbl group by a having groupby_num() between 2 and 3;
> csql> ;run
>
> === <Result of SELECT Command in Line 1> ===
>
> groupby_num() a count(*)
> =========================================
> 2 1 1
> 3 2 1
>
> 3. orderby_num()은 ORDER BY 절의 순서대로 정렬한 최종 결과튜플에 적용하여, 이를 필터링 합니다.
> 예를 들어, 최종 결과의 두번째, 세번째 튜플을 가져오려면 ORDER BY ... FOR .. 에 검색 조건을 기술합니다.
> csql> select orderby_num(), a, b from tbl order by a for orderby_num() between 2 and 3
> csql> ;run
>
> === <Result of SELECT Command in Line 1> ===
>
> orderby_num() a b
> =========================================
> 2 1 2
> 3 2 4
>
> 쿼리의 처리 순서로 보면 inst_num() -> groupby_num() -> orderby_num() 의 순서로 적용됩니다. 질의문 사용시에 이를 고려하셔서 필요한 함수를 사용하시면 될 것입니다.
>
> 즉, MySQL의 LIMIT를 큐브리드 형식으로 바꾸려면 다음과 같이 하시면 되겠지요.
> 질의문에 group by, order by 절이 없으면: LIMIT -> WHERE 절에 inst_num() 조건 추가
> 질의문에 group by 절이 있고 order by 절이 없으면: LIMIT -> HAVING 절에 groupby_num() 조건 추가
> 질의문에 order by 절이 있으면: LIMIT -> ORDER BY .. FOR 절에 orderby_num() 조건 추가하면 됩니다.
>
  • ?
    phpkorea 2010.01.24 03:33
    select * from (select * from a ) as a  where rownum BETWEEN 1 and 5
    이런식으로 사용하셔야 합니다.
    subquery는 select * from과 as a 로 subquery를 감싸야 동작합니다. :)

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
19 질의작성 입력된 년월 또는 두개의 날짜을 이용하여 달력 및 주차 구하기 1 성진 2016.08.10 5569
18 응용개발 CUBRID 와 DBCP의 관계 엄기호 2016.12.14 2785
17 기타 Tomcat's JDBC Pool 사용 시 JNDI DataSource 설정 손승일 2016.12.16 6477
16 기타 JBoss 사용 시 statement pooling 설정 손승일 2016.12.16 2919
15 기타 Oracle import 시 character set 변경관련 김창휘 2016.12.26 8655
14 질의작성 subquery를 이용한 튜닝예제 file 김창휘 2016.12.27 3319
13 질의작성 UPDATE에서 조인을 통해, 결과값 수정하는 방법 박동윤 2016.12.27 7162
12 질의작성 CONNECT BY 절 포함 질의 튜닝 예제 박세훈 2017.02.28 9742
11 운영관리 CUBRID 8.2.2 ~ 8.4.x 버전에서 'ALTER SERIAL ... CACHE <cached_num> / NOCACHE' ERROR 해결 방법 주영진 2017.03.08 2157
10 질의작성 loose index scan을 활용한 효과적인 쿼리 튜닝 방안 박세훈 2017.06.01 2402
9 질의작성 테이블 명세서 쿼리 1 성진 2017.08.04 3157
8 운영관리 윈도우 OS에서 java sp 사용 시 Java VM is not running 해결 방법 정훈 2017.09.04 2221
7 질의작성 JAVA_SP를 이용해서 정규표현식을 이용해서 치환을 하자. file 성진 2017.10.10 1318
6 응용개발 CUBRID PHP 드라이버 빌드와 연동방법 정만영 2018.03.07 3757
5 질의작성 입력된 날자를 이용하여 해당 주차의 모든 날자 구하기 성진 2018.04.10 1103
4 질의작성 여러개의 컬럼을 하나로 묶어주는 함수 CONCAT_WS 사용방법 엄기호 2019.01.29 7181
3 운영관리 CUBRID 브로커와 시스템 메모리 정만영 2019.03.12 2351
2 질의작성 VALUES 절 활용하기 황영진 2020.05.13 809
1 질의작성 synonym에 대하여 김민종 2023.09.07 249
Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 Next
/ 14

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales