<sql id="search">
<if test="searchType != null">
<if test="searchType == 't'.toString()">
AND cms_title LIKE CONCAT('%', #{keyword}, '%')
</if>
<if test="searchType == 'c'.toString()">
AND cms_content LIKE CONCAT('%', #{keyword}, '%')
</if>
<if test="searchType == 'w'.toString()">
AND cms_writer LIKE CONCAT('%', #{keyword}, '%')
</if>
<if test="searchType == 'tc'.toString()">
AND (cms_title LIKE CONCAT('%', #{keyword}, '%')
OR cms_content LIKE CONCAT('%', #{keyword}, '%'))
</if>
</if>
</sql>
<resultMap type="kr.co.vo.cms_board_vo" id="board_map">
<id property="cms_bno" column="cms_bno"/>
<id property="cms_title" column="cms_title"/>
<id property="cms_writer" column="cms_writer"/>
<id property="cms_regdate" column="cms_regdate"/>
<id property="cms_hit" column="cms_hit"/>
</resultMap>
<resultMap type="kr.co.vo.cms_reply_vo" id="reply_map">
<id property="cms_bno" column="cms_bno"/>
<id property="cms_rno" column="cms_rno"/>
<id property="cms_title" column="cms_title"/>
<id property="cms_regdate" column="cms_regdate"/>
<collection property="board" resultMap="board_map"/>
</resultMap>
<!-- 게시판 목록 -->
<select id="list" resultMap="reply_map" parameterType="kr.co.vo.SearchCriteria">
SELECT *
FROM (
SELECT cms_bno
, cms_title
, cms_writer
, cms_regdate
, cms_hit
FROM CMS_BOARD
UNION ALL
SELECT cms_bno
, cms_rno
, cms_title
, cms_writer
, cms_regdate
FROM CMS_REPLY
) A
WHERE cms_bno > 0
<include refid="search"></include>
ORDER BY cms_bno DESC, cms_rno ASC
LIMIT #{pageStart}, #{perPageNum}
</select>
이런식으로 마이바티스 이용해서 해보려고 했는데
오류가 나서...뭐가 잘못됐는지 도움을...좀 부탁드립니다 ㅠ
RE : 아래 답변 감사합니다 확인후에 수정을 했지만 그래도 안되네요 ㅠ
1. Union 항목을 일치시켜 주세요.
2. 인라인뷰 알리아스 필수
3. 정렬 항목 추가
4. 문자엔 홑따옴표 사용이 표준 (쌍따옴표는 비표준)
5. repeat 구문 맞게 사용한 건지 의문? 잘못 사용한 듯?
6. OR 조건 사용시 괄호 사용에 유의
- 변경전 : AND a OR b
- 변경후 : AND (a OR b)
SELECT * FROM (SELECT cms_bno , 0 cms_rno -- 1 , cms_title , cms_writer , cms_regdate , cms_hit FROM cms_board UNION ALL SELECT cms_bno , cms_rno , CONCAT('ㄴ', cms_title) cms_title -- 4,5 , cms_writer , cms_regdate , 0 cms_hit -- 1 FROM cms_reply ) a -- 2 WHERE cms_bno > 0 ORDER BY cms_bno DESC, cms_rno -- 3