MariaDB 계층형 쿼리

유재영·2024년 8월 7일
0
post-thumbnail
post-custom-banner

이 글에서는 목록에 답글을 등록했을경우 원래 글의 하단에 위치하도록 조회하는 방법을 정리했습니다. 몇몇 블로그나 ai 에서 참고를 했으나 목록 순서가 뒤섞이는 문제가 해결되자 않아, 별도로 메모의 필요성을 느꼈다.

아래 목록의 게시글 순서가 표시하고자 하는 결과이다.

계층형 목록
번호 제목
9 문의4
9 ↪문의4 - 답글1
8 ↪↪문의4 - 답글1 - 답글2
7 문의 3
6 문의 2
5 ↪문의 2 - 답글1
4 문의1
3 ↪문의1 - 답글 1
2 ↪↪문의1 - 답글 1 - 답글1
1 ↪문의1 - 답글2
WITH RECURSIVE BBS AS (
	/* parent */
	SELECT ID
		 ,PARENT_ID
		 ,TITLE
		 ,1                     AS LEVEL
		 ,CAST(ID AS CHAR(255)) AS PATH
		 ,ID                    AS TOP_LEBEL_IDX
	FROM TB_BBSCTT
	WHERE PARENT_ID IS NULL

	UNION ALL

	/* child */
	SELECT A.ID,
	       A.PARENT_ID,
	       A.TITLE,
	       B.LEVEL + 1               AS LEVEL,
	       CONCAT(B.PATH, ',', A.ID) AS PATH,
	       B.TOP_LEBEL_IDX
	FROM TB_BBSCTT A
		     INNER JOIN BBS B ON A.PARENT_ID = B.ID
)
SELECT C.ID     /* 게시글 시퀀스 */
	 ,C.LEVEL
	 ,C.PATH
	 ,c.TOP_LEBEL_IDX
	 ,C.PARENT_ID /* 부모 게시글 시퀀스 */
	 ,C.TITLE /* 제목 */
FROM BBS C
ORDER BY C.TOP_LEBEL_IDX DESC, PATH
LIMIT 0, 10
profile
#java #javascript #spring #jquery #mariadb #vue.js
post-custom-banner

0개의 댓글