답변 3개
먼제 게시판의 테이블의필드를 분석을 먼저하시기 바랍니다.
wr_num 원글과 답변글은 같은 순차적인 -동일한 값수
wr_datatime 말그대로 날짜.
그렇다면 답변은?
wr_reply에는 답변글의 순서를 결정하는 필드.
즉 답변의 문자 A,B,AA,BB계층 구조 되어잇다라는 것을 알수있습니다.
그렇다면 wr_reply ASC 답변의 계 층구조 로 인해서 정열 하므로, 빈공간일경우에는 원본글이 라는것입니다.
그렇면
ORDER BY wr_num ASC, wr_reply ASC; 이렇게 되어야 하겟지요 여기서날짜를 묶어야하겟다면 wr_datetime DESC 추가 하여 날짜정열시 답변 이있다고한다면 당연히 뒤죽박죽 정열처럼 보이겠지요~
답변에 대한 댓글 4개
정렬로는 힘들어서 쿼리로 답변만 따로 불러서 뿌려줬어요
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
원본 글은 wr_num DESC로 최신순 정렬하고,
답변 글은 동일한 wr_num 내에서 wr_reply ASC로 계층 구조를 유지하여 정렬하면
원글이 최신순으로 정렬되며, 각 원본 글 아래에 답변 글이 올바르게 배치될 것입니다.
테이블 구조(wr_num, wr_reply 등)가 명확하다면,
원본 글을 최신순으로 정렬하며 답글을 계층적으로 정렬하는 요구사항에 부합하는 쿼리
</p>
<p>SELECT *
FROM 게시판_테이블
ORDER BY
wr_num DESC, -- 원본 글 최신순 정렬
wr_reply ASC; -- 답글 계층 정렬</p>
<p>
*이 쿼리는 단순히 데이터를 정렬하는 SQL 명령입니다.
데이터를 갱신하거나 삭제하지 않으므로,
실행 후 반환된 결과를 확인하여 원하는 정렬 방식인지 검토하세요.
*게시판 데이터가 많거나 wr_reply 계층 구조가 복잡할 경우,
쿼리 성능에 영향을 줄 수 있습니다.
필요한 경우 인덱스를 추가(예: wr_num, wr_reply 조합 인덱스)하여 성능을 개선하세요.
*답글의 정렬에 날짜(wr_datetime ASC 또는 DESC)가 포함되어야 하는 경우,
쿼리에 해당 조건을 추가해야 합니다.
![]()
2. 정렬 결과
wr_num DESC로 원본 글 최신순, wr_reply ASC로 답글 계층 정렬을 적용한 결과
- 웹 브라우저에 표시되는 결과![]()
답변에 대한 댓글 2개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인