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