[DB] ๋ฐ์ดํฐ๋ฒ ์ด์ค MySQL - ๋ฌธ์์ด ๊ฒ์์ ์ ์ฉํ like ํค์๋
LIKE๋ MySQL์์ ๋ฌธ์์ด ํจํด์ ๊ฒ์ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํค์๋์ด๋ค. ์ด๋ฅผ ํตํด ๋ฌธ์์ด์ ์ผ๋ถ ๋๋ ํน์ ํจํด์ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ ์ ์๋ค.
LIKE๋ WHERE ์ ๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ฉฐ, ํจํด ๋งค์นญ์ ์ํด ๋ค์๊ณผ ๊ฐ์ ๊ธฐํธ๋ฅผ ์ฌ์ฉํ๋ค:
- %: 0๊ฐ ์ด์์ ๋ฌธ์๋ฅผ ๋ํ๋ด๋ ์์ผ๋์นด๋.
- _: ํ๋์ ๋ฌธ์๋ฅผ ๋ํ๋ด๋ ์์ผ๋์นด๋.
์ฌ์ฉํ ํ ์ด๋ธ(books)
like ํค์๋
๋ฌธ์์ด ์์, ์ํ๋ ๋ฌธ์์ด์ด ๋ค์ด์๋์ง ๊ฒ์
์ค์ ๋ก๋ ์ผ๋์คํฑ ์์น(Elasticsearch) ๋ฅผ ๋ ๋ง์ด ์ด๋ค. ๊ทธ๋๋ ์ฐ์ด๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ธฐ์ด๋ก ์๊ณ ์์ด์ผ ํ๋ค.
์ฑ ์ ๋ชฉ์ the๊ฐ ๋ค์ด์๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค์์ค.
select *
from books
where title like '%the%';
-- % ์๋ค๋ก ์ฌ์ฉํ์ฌ ์๋ค ์ด๋์๋ the๋ฅผ ์ฐพ์ ์ ์๊ฒ ํด์ฃผ๋ ์์ผ๋ ์นด๋์ด๋ค.
์ฑ ์ ๋ชฉ์ด the ๋ก ์์ํ๋ ์ฑ ์ ์ฐพ์ผ์์ค.
select *
from books
where title like 'the%';
์ฑ ์ ๋ชฉ์ด the ๋ก ๋๋๋ ์ฑ ์ ์ฐพ์ผ์์ค.
select *
from books
where title like '%the';
stock_quantity ์ ์ซ์๊ฐ, 2์๋ฆฌ์์ธ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ผ์์ค.
select *
from books
where stock_quantity like '___'; -- ์ธ๋์ค์ฝ์ด ๊ฐฏ์์ ๋ฐ๋ผ ์ซ์๋ฅผ ๋ณด์ฌ์ค
LIKE๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ์ฐํ ๋ฌธ์์ด ํจํด ๋งค์นญ์ ์ ๊ณตํ์ฌ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ ๋ฐ์ ํ์ฉ๋๋ค.