너무어려웡
502
2017-05-11 17:56:16 작성 2017-05-11 18:06:17 수정됨
2
293

db 쿼리 질문입니다


게시판 만들고 있는 중인데요..

혼자 이것저것 해봤는데도 도통 안 되서 다시 올립니다 ㅠㅠ

step 이용해서 게시글 출력 하려고 하는데요..

-Controller-

@RequestMapping("/reply.do")
	public String reply(){
                //메인 글 vo 구하기
		BoardVo baseVo  = dao.selectOne(vo.getB_idx());
		
		int res = dao.update_step(baseVo);

		vo.setRef(baseVo.getRef()); 
		vo.setStep(baseVo.getStep()+1);  // 상위 글 보다 1이 많게 설정
		vo.setDepth(baseVo.getDepth()+1); // 상위 글 보다 1이 많게 설정
		
		res = dao.reply(vo);
		return "redirect:board.do";
	}

-DB-

<update id="board_updat_step" parameterType="vo.BoardVo">
    	update board set step = step + 1
    	where ref=#{ ref } and step > #{ step } 
</update>

현재 소스인데요

같은 ref중에 상위 글보다 step큰 게시물의 step을 1씩 증가 시키는 식으로 해놨는데요..


이 DB의 STEP을

 


이렇게 바꾸고 싶은데요


쿼리를 어떻게 변경 해줘야 할까요 ㅠㅠ?

0
0
  • 답변 2

  • isNotEmpty
    2017-05-11 20:31:29

    어떤 이야기를 하시는 지 잘 모르겠네요.

    상위글이라는 개념이 제목 컬럼을 말씀하시는건가요. DEPTH를 말씀하시는건가요.

    SUBJECT 이름 순서인 것 같은데...


    순번 매기는 거라면 rank over, row_number over를 사용해보시는 건 어떨까요?


    예시 )

    SELECT

      REF

      , ROW_NUMBER() OVER(PARTITION BY REF ORDER BY SUBJECT) AS RK

    FROM BOARD


    0
  • 너무어려웡
    502
    2017-05-11 20:35:57

    상위 글 쪽 설명 드리자면

    만약 메인 - 1 (step이 2)에 답글을 달면

    메인 -1 -1은 step이 3이 되게끔 해준겁니다!

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.