안녕하십니까 MySql 쿼리 질문 좀드릴게요 ㅠㅠ

제가 웹 게시판 프로그램 만들고 있는데 문제점이 ..

리스트를 받아와서 조 회 수 < 라는 a태그를 클릭하게 되면 HITCOUNT DESC 순으로 쿼리문을 짤려고하는데요

문제는 notice=1 조건을 가진 공지글은 항상 위에 고정이 되는 조회수 정렬 문을 짜야 하는데 어떤식으로 해야될까요 ...

현재는 태그클릭을 안했을 때 공지글 상단 배치 상태입니다.. 감이 잡히질 않네요 .. 팁좀 주십시요!

SELECT x.*

FROM

         (SELECT SEQ

            ,case when NOTICE = 1 then '[공지글]' || TITLE

                     else TITLE

             END as TITLE

             ,USER_NAME

             ,CONTENTS

             ,SREG_DTM

             ,HITCOUNT

FROM Table_Name

ORDER BY NOTICE DESC

                ,SEQ DESC) x

 

 

답변 1개

  • 투표순▲ 투표를 가장 많이 받은 순서로 정렬
  • 작성일순최신 작성된 순서로 정렬
(1)
보통 게시판의 상단붙박이 공지글은 모든 페이지에 다 보이게 만드는것이 보통입니다.

그렇게 하신다면 그냥 notice=1 인것들만 가져오는 별도의 쿼리로 가져와서 상단에 뿌리시고,

나머지부분은 일반적인 게시판 쿼리로 뿌리는것이 성능면에서도 좋을것 같고, 로직이나 코딩도 깔끔해지지 않을까 생각됩니다.


혹시 notice=1 인것들을 1페이지 상단에만 뿌리실거라면 아래 같이 하시면 됩니다.
기본적인 쿼리만 적어드리는것이고, 여기에 limit 로 페이지 구분해서 가져오시면 되구요.

SELECT
SEQ,
case NOTICE
when '1' then 1
else 2 
end as TOP_NOTICE
FROM
TABLE_NAME
ORDER BY
TOP_NOTICE,
SEQ DESC; 

답변쓰기

관련 post

Q

mysql, oracle 에서 한 컬럼의 값에 따라 임의의 순서대로 정렬하는 방법?