์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- ํจ์
- JSP
- ๋์ปค
- Ajax
- ๋์
- SQL
- order by
- ๋ฐฑํฑ
- oracle
- ๋์ ํ ์ด๋ธ
- ํ๋ก๊ทธ๋๋จธ์ค
- MySQL
- Update
- select
- like
- Spring
- optionํ๊ทธ
- JS
- ๋ฐฐ์ด
- ๋ช ๋ น์ด
- ์ธ๋ผ์ธ๋ทฐ
- post๋ฐฉ์
- JavaScript
- ์ปจํธ๋กค๋ฌ
- DATE_FORMAT
- ์ฝํ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ณ์
- ํ ์ด๋ธ
- ๋ฆฌ๋ ์ค
- Today
- Total
bom's happy life
[MYSQL] CONCAT, CONCAT_WS ํจ์, ์ฌ์ฉ๋ฒ ๋ณธ๋ฌธ
[MYSQL] CONCAT, CONCAT_WS ํจ์, ์ฌ์ฉ๋ฒ
bompeach 2023. 9. 22. 14:54๋ฌธ์์ด ๋ถ์ด๋ ๋ฐฉ๋ฒ
1. CONCAT
MYSQL์์ CONCAT ํจ์๋ ๋ ๊ฐ ์ด์์ ๋ฌธ์์ด ์ธ์ ๊ฐ์ด๋, ์ปฌ๋ผ๊ฐ์ ์์๋๋ก ํฉ์น ํ ๋ฐํํด์ฃผ๋ ํจ์์ด๋ค.
์์
SELECT CONCAT('MY','SQL') FROM DUAL;
SELECT CONCAT('M','Y','S','Q','L') FROM DUAL;
SELECT CONCAT('HELLO','11111','WORLD') FROM DUAL;
SELECT CONCAT('HELLO',NULL,'11111','WORLD') FROM DUALL;
๊ฒฐ๊ณผ
MYSQL
MYSQL
HELLO11111WORLD
NULL
2. CONCAT_WS
MYSQL์์ CONCAT_WS ํจ์๋ ๋๊ฐ ์ด์์ ๋ฌธ์์ด ์ธ์ ๊ฐ์ด๋, ์ปฌ๋ผ๊ฐ์ ๋ฐ๋ณต๋๋ ๊ตฌ๋ถ์๋ฅผ ๋ฃ๊ณ ์์๋๋ก ํฉ์น ํ ๋ฐํํด์ฃผ๋ ํจ์์ด๋ค.
์์
SELECT CONCAT_WS(',' , 'M' , 'Y' , 'S', 'Q', 'L') FROM DUAL;
SELECT CONCAT_WS('|' , 'M' , 'Y' , 'S', 'Q', 'L') FROM DUAL;
SELECT CONCAT_WS(',' , 'MYSQL' , '123') FROM DUAL;
SELECT CONCAT_WS(',' , 'MYSQL' , NULL , '123') FROM DUAL;
๊ฒฐ๊ณผ
M,Y,S,Q,L
M|Y|S|Q|L
MYSQL,123
MYSQL,123
์์ : LIKE์ CONCAT_WS
<choose>
<when test="searchCondition == 'placeRentTermSeq'">
AND placeRentTermSeq LIKE CONCAT_WS(#{searchKeyword}, '%', '%')
</when>
<when test="searchCondition == 'rentDate'">
AND rentDate LIKE CONCAT_WS(#{searchKeyword}, '%', '%')
</when>
<when test="searchCondition == 'ALL'">
AND (placeRentTermSeq LIKE CONCAT_WS(#{searchKeyword}, '%', '%'))
OR (rentDate LIKE CONCAT_WS(#{searchKeyword}, '%', '%'))
</when>
</choose>
์ฝ๋ ์ค๋ช :
์์ ์ฝ๋๋ XML ํ์์ ์ฟผ๋ฆฌ ์กฐ๊ฑด์ ๋ํ๋ด๋ฉฐ, ์ฃผ์ด์ง ๊ฒ์ ์กฐ๊ฑด์ ๋ฐ๋ผ SQL ์ง์๋ฌธ์ ์ผ๋ถ๋ฅผ ๋์ ์ผ๋ก ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ฝ๋์์ ์ฌ์ฉ๋ ์ค์ํ ๋ถ๋ถ์ "LIKE CONCAT_WS(#{searchKeyword}, '%', '%')"
1. LIKE : SQL ์ฟผ๋ฆฌ์์ ์ฌ์ฉ๋๋ ์ฐ์ฐ์. ๋ฌธ์์ด์ด๋ ํ ์คํธ ๊ฐ์ ๋ํ ๋ถ๋ถ์ ์ธ ์ผ์น๋ฅผ ์ฐพ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก %์ ํจ๊ป ์ฌ์ฉ๋๋ฉฐ, %๋ ์์์ ๋ฌธ์์ด์ ๋ํ๋ธ๋ค.
2. CONCAT_WS( ) : ์ด ํจ์๋ ๋ฌธ์์ด์ ์ฐ๊ฒฐํ๋ ์ญํ ์ ํฉ๋๋ค. CONCAT_WS() ํจ์๋ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉ๋๋ค.
- ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์: ๊ตฌ๋ถ์ (delimiter)๋ก ์ฌ์ฉํ ๋ฌธ์์ด.
- ๋๋จธ์ง ๋งค๊ฐ๋ณ์: ์ฐ๊ฒฐํ๋ ค๋ ๋ฌธ์์ด.
์ด ํจ์๋ ๊ตฌ๋ถ์์ ๋ฌธ์์ด์ ์ฌ์ฉํ์ฌ ํ๋์ ๋ฌธ์์ด๋ก ์ฐ๊ฒฐํ๋ค.
์๋ฅผ ๋ค์ด, CONCAT_WS('-', '2023', '09', '22')๋ฅผ ํธ์ถํ๋ฉด "2023-09-22"๋ผ๋ ๋ฌธ์์ด์ ๋ฐํํ๋ค.
- ์ฝ๋์์ #{searchKeyword}๋ ๋ณ์ ๋๋ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ํ๋ธ๋ค. ์ด ๋ณ์๋ ๊ฒ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋๋ค.
- CONCAT_WS(#{searchKeyword}, '%', '%')๋ ๊ฒ์ ํค์๋์ %๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ์ฐ๊ฒฐํ๋๋ฐ ์ฌ์ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ฒ์ ํค์๋๊ฐ ์์ชฝ์ %๋ก ๋๋ฌ์ธ์ธ ๋ฌธ์์ด์ด ๋ฉ๋๋ค. %๋ ์์ผ๋์นด๋ ๋ฌธ์๋ก, ์์์ ๋ฌธ์์ด์ ๋ํ๋ธ๋ค. ์ด ๋ฌธ์์ด์ ์ฌ์ฉํ๋ฉด ๋ถ๋ถ์ ์ธ ์ผ์น๋ฅผ ์ฐพ์ ์ ์๋ค.
- ์๋ฅผ ๋ค์ด, ๊ฒ์ ํค์๋๊ฐ "apple"์ด๋ผ๋ฉด, CONCAT_WS(#{searchKeyword}, '%', '%')๋ "%apple%"์ด ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด "apple"์ด ํฌํจ๋ ๋ชจ๋ ๋ฌธ์์ด์ ์ฐพ์ ์ ์๋ค.
๋ฐ๋ผ์ ์ฝ๋์ ๋ชฉ์ ์ ๊ฒ์ ์กฐ๊ฑด์ ๋ฐ๋ผ placeRentTermSeq ๋๋ rentDate ์ด์์ ๋ถ๋ถ์ ์ธ ์ผ์น๋ฅผ ์ฐพ๊ธฐ ์ํด ์ ์ ํ ๊ฒ์ ํค์๋์ %๋ฅผ ์ฌ์ฉํ์ฌ SQL ์ง์๋ฌธ์ ์ผ๋ถ๋ฅผ ๋์ ์ผ๋ก ์์ฑํ๋ ๊ฒ์ด๋ค.
'Deveolpment Study๐๏ธ > Databases' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[MYSQL] MYSQL ๋คํ ๋จ๋ ๋ฐฉ๋ฒ (0) | 2023.09.25 |
---|---|
[MYSQL] LIKE ํน์ ๋ฌธ์์ด ๊ฒ์ (0) | 2023.09.22 |
[MYSQL] collation ํ์ธ, ์ถฉ๋์๋ฌ (0) | 2023.09.22 |
[SQL] WHERE 1=1๋? ์ฌ์ฉํ๋ ์ด์ ? (0) | 2023.09.13 |
[MYSQL] CASE WHEN THEN ๊ตฌ๋ฌธ (0) | 2023.09.12 |