안녕하세요!
메리크리스마스입니다!^^
mysql에서 1깊이 제한의 대댓글 기능을 만드려고 합니다.
첫번쨰 첨부한 이미지모양으로 데이터 구조가 있습니다.
parent_id는 댓글이 달린 글의 id,
parent_reply_id는 0이 아닐경우 해당값의 id를 가진 댓글의 id입니다.
이런 모양의 데이터가 있을경우
id기준으로 정렬 (최신것이 위로 오도록 desc),
그 사이사이 대댓글이 들어오도록 (최신것이 아래로오도록 asc) 정렬이 가능할까요?
지금모양대로 가능할지 아니면 순서컬럼이라던지 새로 컬럼을 추가해야할지 조언 부탁드리겠습니다.
<<원하는 모양>>
id
171
170
172
169
입니다!
WITH t AS ( SELECT 169 id, 155 parent_id, 0 parent_reply_id UNION ALL SELECT 170, 155, 171 UNION ALL SELECT 171, 155, 0 UNION ALL SELECT 172, 155, 171 ) SELECT * FROM t WHERE parent_id = 155 ORDER BY CASE WHEN parent_reply_id = 0 THEN id ELSE parent_reply_id END DESC , CASE WHEN parent_reply_id = 0 THEN - id ELSE id END ;