게시물 조회 쿼리 정리.

master
강석 최 2022-04-13 10:51:02 +09:00
parent 61c133a7cc
commit 4db0d9d126
1 changed files with 47 additions and 41 deletions

View File

@ -3,47 +3,53 @@
<mapper namespace="Board">
<select id="Board.selectBoardList" parameterType="boardSearchVO" resultType="boardVO">
SELECT BD_SEQ AS SEQ, BD_MB_ID AS USERID, BD_GROUP_SEQ AS GROUPSEQ,
BD_CATEGORY AS CATEGORY, BD_NAME AS USERNAME, BD_CONTENT AS CONTENT,
BD_SUBJECT AS SUBJECT, BD_PARENT_SEQ AS PARENTSEQ, BD_PREV_SEQ AS PREVSEQ,
BD_NEXT_SEQ AS NEXTSEQ, BD_STEP AS STEP, BD_DEPTH AS DEPTH,
BD_REGDATE AS REGDATE, BD_HIT AS HIT, BD_RECOMMEND AS RECOMMEND,
BD_IP AS IP, BD_NOTICE AS NOTICE, BD_HTML AS HTML,
BD_NUM1 AS NUM1, BD_NUM2 AS NUM2, BD_DATA1 AS DATA1, BD_DATA2 AS DATA2,
FILECNT
FROM (
SELECT (ROW_NUMBER() OVER()) RNUM, ALL_LIST.*, #{id} ID,
(SELECT COUNT(*) FROM H3_BD_${id}_FILE WHERE BF_BD_SEQ = ALL_LIST.BD_SEQ) AS FILECNT
FROM (
SELECT
*
FROM H3_BD_${id}_LIST BBS
<where>
<if test='category != " " or id == "stat_bbs"'>
AND BD_CATEGORY = #{category}
</if>
<if test="searchKeyword != null and searchKeyword != ''">
<choose>
<when test="searchCondition == 0">
AND BD_DATA1 LIKE '%' || #{searchKeyword} || '%'
</when>
<when test="searchCondition == 1">
AND BD_NAME LIKE '%' || #{searchKeyword} || '%'
</when>
<when test="searchCondition == 2">
AND BD_SUBJECT LIKE '%' || #{searchKeyword} || '%'
</when>
</choose>
</if>
</where>
ORDER BY
BBS.BD_NOTICE DESC,
BBS.BD_GROUP_SEQ DESC,
BBS.BD_STEP ASC
) ALL_LIST
) a
select BD_SEQ AS SEQ,
BD_MB_ID AS USERID,
BD_GROUP_SEQ AS GROUPSEQ,
BD_CATEGORY AS CATEGORY,
BD_NAME AS USERNAME,
BD_CONTENT AS CONTENT,
BD_SUBJECT AS SUBJECT,
BD_PARENT_SEQ AS PARENTSEQ,
BD_PREV_SEQ AS PREVSEQ,
BD_NEXT_SEQ AS NEXTSEQ,
BD_STEP AS STEP,
BD_DEPTH AS DEPTH,
BD_REGDATE AS REGDATE,
BD_HIT AS HIT,
BD_RECOMMEND AS RECOMMEND,
BD_IP AS IP,
BD_NOTICE AS NOTICE,
BD_HTML AS HTML,
BD_NUM1 AS NUM1,
BD_NUM2 AS NUM2,
BD_DATA1 AS DATA1,
BD_DATA2 AS DATA2,
FILECNT
from H3_BD_${id}_LIST list
left outer join (select BF_BD_SEQ, count(*) as filecnt
from H3_BD_notice_FILE
group by BF_BD_SEQ) file
on list.bd_seq = file.bf_bd_seq
<where>
<if test='category != " " or id == "stat_bbs"'>
AND BD_CATEGORY = #{category}
</if>
<if test="searchKeyword != null and searchKeyword != ''">
<choose>
<when test="searchCondition == 0">
AND BD_DATA1 LIKE '%' || #{searchKeyword} || '%'
</when>
<when test="searchCondition == 1">
AND BD_NAME LIKE '%' || #{searchKeyword} || '%'
</when>
<when test="searchCondition == 2">
AND BD_SUBJECT LIKE '%' || #{searchKeyword} || '%'
</when>
</choose>
</if>
</where>
ORDER BY BD_NOTICE DESC, BD_GROUP_SEQ DESC, BD_STEP asc
limit #{recordCountPerPage} offset #{firstIndex}
</select>