DB에서 order by limit 5로 가져온 글 5행을 다시 역순으로 출력하려고 합니다. 0 4 951

by 공부중 [DB 기타] [2021.04.01 18:28:12]


안녕하세요!

아래와 같이 order by seq desc limit 5 구문으로 작성하면 게시판 마지막 글  5개는 잘 가져옵니다.                

<?php 

      $rs = mysqli_query($conn,"select * from ".$tb_comment." order by seq desc limit 5");
        while($dn = (mysqli_fetch_array($rs))) {
  ?>

<div>  ~~~~ $dn[name]...등등 아래 표처럼 가져올 내용 ~~</div>

<?php } ?>

결과1)

no 작성자 글내용
25 김나리  안녕하세요
24 최미래  안녕하세요
23 오달래  안녕하세요
22 이목련  안녕하세요
21 손흥민  안녕하세요

 

그런데 아래와 같이 가져온 데이터를 역순으로 바꾸어 출력이 되게하는 방법을 알고 싶습니다.

결과2)

no 작성자 글내용
21 손흥민  안녕하세요
22 이목련  안녕하세요
23 오달래  안녕하세요
24 최미래  안녕하세요
25 김나리  안녕하세요

감사합니다.

by 뉴비디비 [2021.04.01 21:08:55]
WITH dataTbl ( idx, wrname, wrbody ) AS (
    SELECT 22, '이목련', '안녕하세요' UNION ALL
    SELECT 18, '다른값1','안녕하세요' UNION ALL
    SELECT 24, '최미래', '안녕하세요' UNION ALL
    SELECT 12, '다른값2','안녕하세요' UNION ALL
    SELECT 23, '오달래', '안녕하세요' UNION ALL
    SELECT 25, '김나리', '안녕하세요' UNION ALL
    SELECT 5 , '다른값', '안녕하세요' UNION ALL
    SELECT 21, '손흥민', '안녕하세요' 
)
SELECT idx, wrname, wrbody  FROM (
    SELECT 
        idx, wrname, wrbody 
    FROM dataTbl 
    ORDER BY idx DESC
    LIMIT 5
) tmpTbl
ORDER BY idx ASC

by 공부중 [2021.04.02 03:02:48]

답변 감사드립니다. 제가 질문의도를 제대로 표현 못한 것인지 의도와 달리 일이 커져버렸습니다.
25개의 게시글이 db에 번호컬럼 seq 순서대로 s잘 들어가 있고, order by seq desc 5 로 제일 마지막 5개는 가져왔는데  그걸 다시 역순으로 결과2 처럼 출력하는 방법을 찾고 있습니다. 


by 마농 [2021.04.02 08:15:04]

네. 위 답변 글이 그 방법입니다.
인라인뷰(from 절 서브쿼리)를 이용하는 방법입니다.
with 문 없다고 생각하고 쿼리를 어뗜 방식으로 작성했는지를 보세요.
"SELECT * FROM (SELECT * FROM ".$tb_comment." ORDER BY seq DESC LIMIT 5) a ORDER BY seq";


by 공부중 [2021.04.02 16:45:33]

자세한 설명 감사드립니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입