IT/development

[mybatis] mybatis ๋™์  ์ฟผ๋ฆฌ ์ž‘์„ฑ ์‹œ "," ๊ด€๋ จ

์•Œ ์ˆ˜ ์—†๋Š” ์‚ฌ์šฉ์ž 2022. 11. 22.

๋ชฉ์ฐจ

    ์‚ฌ์†Œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด์œ ๋ฅผ ๋ชฐ๋ผ์„œ ์ฟผ๋ฆฌ ์ž‘์„ฑ ์‹œ ์—๋Ÿฌ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์„ ์žก์•„ ๋จน์–ด์„œ ์—ญ์‹œ๋‚˜ ๋ฏธ๋ž˜์˜ ๋‚ด๊ฐ€ ๋ณด๊ธฐ์œ„ํ•ด ๊ธฐ๋กํ•œ๋‹ค.

     

    ์˜ˆ๋ฅผ ๋“ค์–ด ์œ„์™€ ๊ฐ™์€ ์ฟผ๋ฆฌ๊ฐ€ ์žˆ์„ ๋•Œ parameter๊ฐ’์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ SQL์„ ์ƒ์„ฑ ์‹œ SELECT๋ฌธ ์ปฌ๋Ÿผ ๋’ค์ชฝ์— ","๋ฅผ ๋„ฃ์œผ๋ฉด ๋ฌธ๋ฒ•์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

    ๋„˜์–ด์˜จ member_id๊ฐ’์ด ์žˆ์œผ๋ฉด , mcm.etc๊ฐ€ ๋ถ™๋Š” ๋ฐ ๋งŒ์ผ ์œ„์˜ ์ฟผ๋ฆฌ๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค๋ฉด ๋™์  ์ฟผ๋ฆฌ๋ฅผ ๋ถ™์ด์งˆ ๋ชปํ•œ๋‹ค.

    select m.*,
    	   mcm.tag_type,
    	   mcm.tag_name,
    <if test="member id != null and member_id != ''">
    	   mcm.etc
    </if>
    FROM member m LEFT OUTER JOIN member_code_mapping ON m.member_seq = mcm.member_seq
    LIMIT #{start}, #{length}

    ์ด ๊ฒฝ์šฐ๋Š” ๋„˜์–ด์˜จ member_id๊ฐ€ ์—†์œผ๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ์ฟผ๋ฆฌ๊ฐ€ ์ž‘์„ฑ๋˜์„œ ๋ฌธ๋ฒ• ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

    select m.*,
    	   mcm.tag_type,
    	   mcm.tag_name,
    FROM member m LEFT OUTER JOIN member_code_mapping ON m.member_seq = mcm.member_seq
    ...

     

    ๋™์  ์ฟผ๋ฆฌ ์ž‘์„ฑ ์‹œ์—๋Š” SELECT ์ปฌ๋Ÿผ ์•ž์— ","๋ฅผ ๋ถ™์—ฌ์„œ ์•„๋ž˜์ฒ˜๋Ÿผ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.

    select   m.*
    	   , mcm.tag_type,
    	   , mcm.tag_name
    FROM member m LEFT OUTER JOIN member_code_mapping ON m.member_seq = mcm.member_seq

     

     

    ๋ˆ„๊ตฌ์—๊ฒŒ๋Š” ์‚ฌ์†Œํ•œ ์ •๋ณด์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ˆ„๊ตฌ(์ •๋ณด๋ฅผ ๋ชฐ๋ž๋˜ ๋‚˜)์—๊ฒŒ๋Š” ์‚ฌ์†Œํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๊ธฐ์— ํฌ์ŠคํŒ…์„ ํ•œ๋‹ค.

    ๋Œ“๊ธ€