database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 13676 게시물 읽기
No. 13676
오라클+php에서 페이징하기때문에..
작성자
오라클초보
작성일
2003-02-28 13:49
조회수
1,345

안녕하세요 오라클에서 아래와 같은 구문으로 페이징을 시도 하였으나 제대로 안되어서 이렇게 글을 남김니다.

 

1.번

$query="select id,com_name,name,e_mail,tel,hp,domain from ";

$query.="(select m.member_id as id,m.company_name as com_name,m.contact_name as name,m.e_mail as e_mail,m.tel_no as tel,";

$query.="m.hp_no as hp, w.domain_name as domain,rownum as rnum ";

$query.="from n_winc w, n_member m where w.member_id = m.member_id and .status = '110' ";

$query.="order by w.reg_dt desc) where rnum >= 1 and rownum <= 30";

 

2번

$query="select id,com_name,name,e_mail,tel,hp,domain from ";

$query.="(select m.member_id as id,m.company_name as com_name,m.contact_name as name,m.e_mail as e_mail,m.tel_no as tel,";

$query.="m.hp_no as hp, w.domain_name as domain,rownum as rnum ";

$query.="from n_winc w, n_member m where w.member_id = m.member_id and w.status = '110' ";

$query.="order by w.reg_dt desc) where rnum >= 31 and rownum <= 30";

 

 

3번

$query="select id,com_name,name,e_mail,tel,hp,domain from ";

$query.="(select m.member_id as id,m.company_name as com_name,m.contact_name as name,m.e_mail as e_mail,m.tel_no as tel,";

$query.="m.hp_no as hp, w.domain_name as domain,rownum as rum ";

$query.="from n_winc w, n_member m where w.member_id = m.member_id and w.status = '110' ";

$query.="order by w.reg_dt desc) where rnum >= 31 and rownum <= 60";

 

 

위와 같이 했을 경우.

1번과 2번의 쿼리 실행시 30개의 실행결과가 나오나 똑같은 결과가 뿌려지며, 3번 실행시 30개만 나오는 것이 아니라 결과가 60개가 나옵니다.

 

3번 실행시 결과를 30개만 나오게 하려면 어떻게 해야 하는지......

이 글에 대한 댓글이 총 6건 있습니다.

where rnum >= 31

and rownum <= 60

 

조건에서

 

rnum -> rownum으로 하던지

rownum -> rnum으로 하던지 해서

조건을 주어야 하지 않을까요? ^^

멋진놈님이 2003-02-28 14:46에 작성한 댓글입니다.

rnum -> rownum으로 통일하면 첫페이지에서는 내용이 나오나 다음페이지에서 안나오고,

 

rownum ->rnum으로 통일하면 각페이지별로는 DESC가 되나 전체 내용은 ASC순이되어 버립니다.

오라클 초보님이 2003-02-28 15:17에 작성한 댓글입니다.

select id,

com_name,

name,

e_mail,

tel,

hp,

domain

from (select m.member_id as id,

m.company_name as com_name,

m.contact_name as name,

m.e_mail as e_mail,

m.tel_no as tel,

m.hp_no as hp,

w.domain_name as domain,

rownum as rnum <- 이 구문에서는 불필요하군요...

from n_winc w,

n_member m

where w.member_id = m.member_id

and w.status = '110'

order by w.reg_dt desc

)

where rownum >= 첫번째 조건

and rownum <= 두번째 조건

 

 

위에 적으신 1번 2번 3번 쿼리 중에서

2번 퀴리의 결과가 조회되지 않는 이유는

where 절의 조건을 잘못 주셨죠?

 

 

 

전체 내용, 각 페이지별 desc로 정렬하고 싶으시면,

where절에서 rnum으로 조건을 주면 안되고, rownum 으로 조건을 주셔야 되겠죠.. ^^

멋진놈님이 2003-02-28 15:45에 작성한 댓글입니다.

select id,

com_name,

name,

e_mail,

tel,

hp,

domain

from (select m.member_id as id,

m.company_name as com_name,

m.contact_name as name,

m.e_mail as e_mail,

m.tel_no as tel,

m.hp_no as hp,

w.domain_name as domain

from n_winc w,

n_member m

where w.member_id = m.member_id

and w.status = '110'

order by w.reg_dt desc

)

where rownum >= 31

and rownum <= 60

 

답변감사합니다.

 

위와 같은 방법으로 해봤는데두 안되거던여..

위에서 지적해주신 rownum as rnum <- 이 구문에서는 불필요하군요 --이부분은 삭해 하거나 그냥 하거나 같은 결과가 나옵니다.

오라클 초보님이 2003-02-28 15:58에 작성한 댓글입니다.

뭐가 안된다는 말씀이신지요...

 

혹시 각페이지별로는 DESC가 되나 전체 내용은 ASC순이 된다면, 그건 PHP의 화면에 출력하는 부분이 잘못된거 같습니다.

 

 

그리고

where rownum >= 첫번째 조건

and rownum <= 두번째 조건

이 부분은

 

where rownum between 첫번째 조건 and 두번째 조건

 

이런식으로는 안되나요? ^^

멋진놈님이 2003-02-28 16:35에 작성한 댓글입니다.

구문이 이게 맞구요..

where rnum >= 1 and rownum <= 30

 

똑같은 결과가 뿌려지는건 rownum의 특성상 order by 완 같이 쓸수가 없다는게..

 

인라인 뷰로 한번더 묶던지.. 정렬할 컬럼에 인덱스가 있다면 힌트를 적용해보시길..

='ㅅ'=님이 2003-02-28 17:03에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
13681sql문 질문 [1]
초보
2003-02-28
1336
13678트리거 질문입니다. [1]
러프
2003-02-28
833
136772000서버에서 오라클설치 [1]
박근형
2003-02-28
878
13676오라클+php에서 페이징하기때문에.. [6]
오라클초보
2003-02-28
1345
13679┕>Re: 오라클+php에서 페이징하기때문에..
마스터.펠
2003-02-28 16:59:56
935
13680 ┕>Re: Re: 오라클+php에서 페이징하기때문에..
오라클 초보
2003-02-28 17:08:17
1116
13675ctxsys으로 못들어가여 ㅠㅠ [1]
질문이여
2003-02-28
959
13674이메일 유효성 컬럼추가
궁금이
2003-02-28
1190
13673ORACLE 서버 이전 작업 너무 힘듭니다. [1]
차동박
2003-02-28
824
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다