database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 30869 게시물 읽기
No. 30869
답변형 게시판에서 페이징 문제
작성자
양양
작성일
2015-08-13 17:43ⓒ
2015-08-13 17:44ⓜ
조회수
8,315

 안녕하세요~ 항상 많은 도움이 되고 있습니다. 감사합니다~

이번에 mysql 로는 처음으로 개발하고 있는데 ㅠ 답변형 게시판구현중입니다.

답글은 1depth여서  답글의 답글은 없는 형태인데요

검색해봐서 재귀 함수 만들어서 리스트는 불러 왔는데요

SELECT dc.cmt_no

    , CONCAT(REPEAT(' ', dc2.lev-1)

    , content) AS content

    , parent_no

    , CAST(dc2.lev AS CHAR) AS level

  FROM (

                 SELECT

                      GET_COMM_TREE2(cmt_no) AS cmt_no

                     , @level as lev

                 FROM (

                               SELECT @start_with := '', @code := @start_with, @level := 0

                              ) vars, test.communication

WHERE @code IS NOT NULL

) dc2 JOIN test.communication dc

ON dc.cmt_no = dc2.cmt_no

페이징을 더보기로 구현해야 하거든요 그냥 30개씩 불러오는거는 limit 0, 30 이렇게 해서 할 수 있는데 ;

 

그런데 문제는 댓글 비포함 으로 30개씩 보여줘야 해서 쿼리를 어떻게 해야 할지 감이 안잡혀서요 ㅠ

테이블 구조는 cmt_no, content, parent_id 이런 구조인데  저게 쿼리에서 가능할까요?

페이스북 comment 처럼 댓글 상관없이 원글 갯수로만 더보기를 구현하고 싶은데 쿼리에서 가능한지 궁금합니다.

제가 워낙 설명능력이 떨어져서 죄송합니다 ㅠ

이 글에 대한 댓글이 총 2건 있습니다.

답글이 1depth만 있다면 쿼리를 간단하게 짜시면 될 것 같네요.

 

SELECT *

FROM (

SELECT b.cmt_no, b.content

,IFNULL(b.parent_no, b.comt_no) AS p_id

,CASE WHEN b.parent_no IS NULL THEN 1

ELSE 2

END AS lev

FROM ( /* 원글 번호 30개 페이징 해성 불러 온다 */

SELECT cmt_no

FROM communication

WHERE parent_id IS NULL

ORDER BY cmt_no DESC

LIMIT 0,30

) a

JOIN communication b ON (b.cmt_no = a.cmt_no OR b.parent_no = a.cmt_no)

) lst

ORDER BY p_id DESC cmt_no ASC

;

 

이런식으로 하면 될 듯

머리로 짠 쿼리라 오류 발생할 수도 있습니다.

cmt_no가 자동 증가 일 경우로

최근 글이 먼저 나오고 답글은 오래된 글이 먼저 나오게 작성한 쿼리 입니다.

박인호(paerae)님이 2015-08-15 14:20에 작성한 댓글입니다.

 우왕~감사합니다~한번해볼께요~^^

양양님이 2015-08-15 17:15에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
30872mysql odbc 급한데 도움좀 부탁 [2]
홍기복
2015-08-22
9660
30871완전초보인데요 리눅스로 서버 접속시 .. ip가 어떻게하면 테이블안으로 들어가나요 ? [3]
이상현
2015-08-19
7221
30870php에서 mysql원격 접속 안되는 문제.. [1]
박현규
2015-08-17
7317
30869답변형 게시판에서 페이징 문제 [2]
양양
2015-08-13
8315
30868아 토나올거 같아요 MYSQL 연동 질문...
이지훈
2015-08-11
7177
30867비번수정후 생긴일
최동식
2015-08-07
7337
30866MySQL 메모리 사용률 최적화 중 질문 좀 드립니다 ㅠ
김의연
2015-08-03
7841
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.047초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다