깜놀하는 해므찌로

공지사항 MySql Select / 다중 order by 본문

IT

공지사항 MySql Select / 다중 order by

agnusdei1207 2022. 7. 6. 14:47
반응형
SMALL

 

<select id="selectList" parameterType="cmmnDefaultVO" resultType="ntcVO">
/* Ntc.selectList */
<![CDATA[  
 SELECT  NT_SEQ								 ntSeq
      ,  DATE_FORMAT(NT_RGST_DT,'%Y.%m.%d')  ntRgstDt
      ,  F_USER_NM(NT_RGST_ID) 				 ntRgstId
      ,  NT_ATCH_FILE_ID 					 ntAtchFileId
      ,  NT_TITLE							 ntTitle
      ,  NT_CONT 							 ntCont
      ,  NT_STATE							 ntState
      ,  NT_STA_DATE						 ntStaDate
      ,  NT_END_DATE						 ntEndDate
      ,  IF(NT_STATE = 'Y' AND NOW() >= NT_STA_DATE AND NOW() < NT_END_DATE, 'Y', 'N') as noticeYn
   FROM  T_NTC   
  WHERE  NT_USE_YN='Y'	    
]]>    
 <include refid="Where"/>	 
<![CDATA[     
  ORDER  BY noticeYn DESC, NT_SEQ DESC
  LIMIT  #{firstIndex} , #{recordCountPerPage}
]]>
</select>

1. NT_STATE 컬럼의 Y 값은 공지, N 값은 일반글로 구분됩니다.

2. IF 함수를 통해 현재 유효한 날짜의 공지들만 조회합니다.

3. IF(조건, 조건의 결과가 참일 경우, 조건의 결과가 거짓일 경우)

4. ORDER BY 에서 공지글과 공지가 아닌 글을 각각 정렬합니다. (포인트)

반응형
LIST