테스트 사이트 - 개발 중인 베타 버전입니다

게시판 쿼리문 질문이요 채택완료

히햐 10개월 전 조회 2,023

글을 최신순으로 정렬할건데요

답글을 달면 답글에도 시간이 지정되어 정렬이 엉망이 되어서요ㅠ

원본글만 최신순으로 정렬하고 답글은 원글 바로아래에 정렬해야 하는데

order by를 어떻게 넣어야하나요?ㅜ

case로 해봐도 잘안되네요

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
웅푸
10개월 전

먼제 게시판의 테이블의필드를 분석을 먼저하시기 바랍니다.

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개

히햐
10개월 전
네 ㅜㅜ구조는 알고있어요 그래서 뒤죽박죽 보여요ㅜㅜ 어떻게 하면 원하는대로 나올 수 있나요?
웅푸
10개월 전
그누보드의 게시판은 기본 디폴트는 정열은 이미 선택사항으로 정열을 하고있습니다. 그런데 지금 이정열이 모든 스킨에서 반영이 않되고잇다라는뜻인지요?
히햐
10개월 전
아 wr_num으로 정렬하지 않고 wr_datetime 으로 정렬해야해서요ㅜㅜ 임의로 게시글 순서를 변경할수 있어야 하거든요
히햐
10개월 전
제일 먼저 답변 주셔서 채택할께요,,
정렬로는 힘들어서 쿼리로 답변만 따로 불러서 뿌려줬어요

댓글을 작성하려면 로그인이 필요합니다.

e
10개월 전

wr_num 을 변경해서 게시물 순서를 바꾸는 것을 추천합니다.

https://sir.kr/g5_tip/5228

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

glitter0gim
10개월 전

원본 글은 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개

히햐
10개월 전
자세한 답변 감사드립니다.. 제가 질문을 잘못했네요ㅠ wr_num말고 wr_datetime값으로 최신순정렬을 하려는 의도에요ㅠㅠ 임의로 게시글 순서를 지정할 수 있어야해서요
g
glitter0gim
10개월 전
~/_

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인