본문 바로가기
DataBase/oracle

Oracle Previous(이전글), next(다음글)

by 아이티.파머 2010. 9. 16.
반응형


이전글과 다음글 구하기, Query 

1. 이전글
1-1. 첫번째 방법, 답글이 없는경우

SELECT * FROM CMTB_COMMON_BBS
    WHERE SEQ IN(
        SELECT MAX(SEQ)
        FROM CMTB_COMMON_BBS
        WHERE SEQ <8
        )

 
1-2. 두번째 방법, 답글 이 있는경우

SELECT rownum, subject, seq
FROM CMTB_COMMON_BBS
WHERE
    rownum = 1
    and bbsid = 'TEST'
    AND ref = 10-1
ORDER BY ref DESC, step

답글이 없는경우야 1-1 번 방법처럼 써도 상관 없겠지만, 답글이 있는경우 1-1번 방법을 쓰게되면 엉뚱 한 답글이 이전글이 되어 버린다.
즉 답글이 있는경우는 부모의 글이 생성된 순서를 desc(역순),  답글이 생성된 순서에 대해 Order By를 주면 간단히 해결됨.

참고로 1-2에서  ref ? -1

?  => 현재 클릭된 게시 내용의 순번 ex)10
-1 => 이전글을 찾기위해 -1

-- 생각해보니 1-1번에도 Order by 만 붙여주면 될것 같은데 ㅡ_ㅡ^ 

2. 다음글은, 다음에......?
   위에거 반대로 하면 다음글 나오지 안을까? ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅎ



결국엔 잊어버려서 여기다 적는구나,ㅋ

rost Memory zzzzzzzzzzzzzzzzzzzzzzzzzzzz.

반응형