게시물 조회 쿼리 정리.

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