๐ฅ ๋ง์ด๋ฐํฐ์ค, ์ธํฐ์ ํฐ, ๋น์ค์ฝํ 9๊ฐ
1๏ธโฃ ์ ๋ชฉ์ผ๋ก ๊ฒ์๋ฌผ ์กฐํ ํ ์คํธ ์์ฑ (SELECT & LIKE & CONCAT) (์ด์ด์ ์งํ)
โ ํ ์คํธ ์์ฑ
@SpringBootTest
@Transactional // ํ
์คํธ ๋ด์ฉ DB ์ ๋ฐ์๋์ง ์๋๋ก
class AppTest {
// (์๋ต)
@Test
@DisplayName("์ ๋ชฉ์ผ๋ก_๊ฒ์๋ฌผ_์กฐํ")
void t4() {
List<Article> articles = articleService.getArticlesBySubject("subject", "์ ๋ชฉ");
assertThat(articles.size()).isEqualTo(2);
}
}
โก ๋จ์ LIKE ์ฌ์ฉ์ MyBatis์ ํ๊ณ
@Mapper
public interface ArticleRepository {
// (์๋ต)
@Select("""
SELECT *
FROM article
WHERE ${type} LIKE '%#{subject}%'
""")
List<Article> getArticlesBySubject(String type, String subject);
}

์คํ ์ฟผ๋ฆฌ๋ฌธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ์ ์ ์์ง๋ง ์๋ํ '%์ ๋ชฉ%' ์ด ์๋ '%'์ ๋ชฉ'%' ์ผ๋ก ๋์จ ๊ฒ์ ์ ์ ์๋ค ์ด๊ฒ์ MyBatis ๋ฅผ ํตํด ์์ฑํ ์ ๋ฐ์ํ ์ ๋ฐ์ ์๋ ํ๊ณ์ด๋ฏ๋ก ์๋์ ๊ฐ์ด CONCAT ์ ํ์ฉํจ์ผ๋ก์ ํด๊ฒฐ ๊ฐ๋ฅํ๋ค.
โข CONCAT ์ฌ์ฉ ๋ฐ ๊ฒฐ๊ณผ ํ์ธ
// ์์ ๋ ์ฝ๋
@Select("""
SELECT *
FROM article
WHERE ${type} LIKE CONCAT('%', #{subject}, '%')
""")
List<Article> getArticlesBySubject(String type, String subject);

CONCAT ์ ๋ฌธ์์ด์ ํฉ์ณ์ฃผ๋ ํจ์๋ก์ ํด๋น ์ฟผ๋ฆฌ๊ฐ ์ํ๋๋ฉด ์ ์์ ์ผ๋ก '%์ ๋ชฉ%' ์ด ๋ ๊ฒ์ด๋ค.
'TIL ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| TIL 21์ผ์ฐจ (2022.11.08) (0) | 2022.11.08 |
|---|---|
| TIL 20์ผ์ฐจ (2022.11.07) (0) | 2022.11.07 |
| TIL 18์ผ์ฐจ (2022.11.03) (0) | 2022.11.03 |
| TIL 17์ผ์ฐจ (2022.11.01) (0) | 2022.11.01 |
| TIL 16์ผ์ฐจ (2022.10.31) (0) | 2022.10.31 |