상세보기쪽에서 다음글과 이전글을 구현하려고 하는데요
특정 정렬조건에 따라 다음글과 이전글이 나와야 합니다.
넘어온 일련번호의 파라미터가 id 라고 하면
아래와 같이 처리를 하려고 생각했는데
sql="select idx from Table where idx=(select max(idx) from Table where idx<"&id&" order by col1, col2)"
서브쿼리에는 정렬조건이 들어갈 수 없다고 나오네요
특정 정렬조건으로
다음글/이전글을 구현하려면 어떤 쿼리로 작성을 해야되나요?
Comment 8
-
군고구마
2013.10.17 10:48
select idxfrom Tablewhereidx=(select max(idx)from Tablewhere idx< @IDX)order by col1, col2이렇게 구현하면 되지 않나요?@IDX 즉 정렬번호를 변수로 받아줍니다. 파라미터로 그렇게 되면그 이후에 데이터만 보이기 때문에 가능 하다고 생각됩니다.그리고 ORDER BY를 밖으로 빼내면 정렬이 가능 하지 않나요? -
이스트럭(강동운)
2013.10.17 11:03
군고구마님 태클은 아니지만.. ^^;;
idx = (max값) 의 결과는 어자피 한건만 나오기 때문에.. 바깥에 있는 order by는 아무런 의미가 없게됩니다 ^^;;;
-
이스트럭(강동운)
2013.10.17 11:02
안녕하세요~!
select max(idx) from Table where idx<"&id&" order by col1, col2 로 정렬한다고 하셨는데..
쿼리를 보면.. idx <"& idx &" 보다 작은 값 중에서.. max값을 구하는거라.. order by는 아무런 의미가 없을듯합니다 ^^;;
col1과 col2가 어떤 컬럼인지 정보를 주셔야 추가 답변이 가능할 것 같습니다.
감사합니다~^^
-
군고구마
2013.10.17 11:13
아 맞네요 ㅎㅎ^^;
select idx
from Table
where
idx=
(
select idx
from Table
where idx<"&id&"
)
order by col1, col2
이렇게 답변한다는게...
-
냥냥
2013.10.17 11:11
실제 데이타로는 제품테이블인데요
정렬은 1차카테고리 번호, 2차카테고리 번호, 제품명 순입니다.
제가 본문에 적은 쿼리 자체가 잘못되었네요
특정조건으로 정렬을 하기 때문에
일련번호는 파라미터로 받은 변수보다 클수도 있고 작을 수도 있겠네요
답변 주셔서 감사합니다.
-
이스트럭(강동운)
2013.10.17 11:16
각 카테고리 리스트에서 .. 이전상품 다음 상품이라면..
where절에다 조건을 줘야 하고요~ 아래 처럼..
sql="select idx from Table where idx=(select max(idx) from Table where idx<"&id&" and col1 ="& col1 &" and col2="& col2 &")"
그게 아니라 전체 상품 리스트 중이라면... 아래처럼 해야되지 않을까 싶네요~!
sql="select idx from Table where idx=(select max(idx) from Table where idx<"&id&")"
구문을 보니 asp군요^^;;
-
냥냥
2013.10.17 11:27
카테고리 검색을 했을때는 위와 같이 조건을 줘도 되긴 하겠는데
전체 상품의 정렬이 1차카테고리, 2차카테고리, 제품명 순이라서
정렬에 따라서 일련번호가 파라미터값보다 작을 수도 클수도 있으니까
처음에는 쉽게 생각했는데 의외로 까다롭네요
-
맨즈밤
2013.10.17 11:21
서브쿼리에도 정렬조건이 들어갈순있습니다. 팁이라고 해야하나.... TOP 100 PERCENT 이걸 서브쿼리에 넣어주시면 됩니다.