๐ป ๋ฌธ์ ์ฃผ์ : https://school.programmers.co.kr/learn/courses/30/lessons/131112
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๐ป ๋ฌธ์ ์ค๋ช
๋ค์์ ์ํ๊ณต์ฅ์ ์ ๋ณด๋ฅผ ๋ด์ FOOD_FACTORY ํ ์ด๋ธ์ ๋๋ค. FOOD_FACTORY ํ ์ด๋ธ์ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ FACTORY_ID, FACTORY_NAME, ADDRESS, TLNO๋ ๊ฐ๊ฐ ๊ณต์ฅ ID, ๊ณต์ฅ ์ด๋ฆ, ์ฃผ์, ์ ํ๋ฒํธ๋ฅผ ์๋ฏธํฉ๋๋ค.
Column name | Type | Nullable |
FACTORY_ID | VARCHAR(10) | FALSE |
FACTORY_NAME | VARCHAR(50) | FALSE |
ADDRESS | VARCHAR(100) | FALSE |
TLNO | VARCHAR(20) | TRUE |
๐ป ๋ฌธ์
FOOD_FACTORY ํ ์ด๋ธ์์ ๊ฐ์๋์ ์์นํ ์ํ๊ณต์ฅ์ ๊ณต์ฅ ID, ๊ณต์ฅ ์ด๋ฆ, ์ฃผ์๋ฅผ ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ๊ฒฐ๊ณผ๋ ๊ณต์ฅ ID๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
๐ป ์ฝ๋ ๋ฐ ํ์ด
1๏ธโฃ like ํจ์๋ฅผ ํตํด '๊ฐ์๋'๋ก ์์ํ๋ ๋ฐ์ดํฐ ์ถ์ถ ์ฟผ๋ฆฌ
like() ํจ์๋ 'ํน์ ๋ฌธ์๋ฅผ ๊ฒ์'ํ๋ ํจ์๋ก, ๋ด๊ฐ ์ํ๋ ๋ฌธ์์ด์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๊ฐ์ ํฌํจ๋์ด ์๋์ง๋ฅผ ํ์ธํ๋ค. ํ๋จ ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋ฉด '๊ฐ์๋%'๋ผ๋ฉฐ ' %'๊ฐ ๋ค์ด๊ฐ ์์์ ์ ์ ์๋ค. ์ฌ๊ธฐ์ %๋ '๊ฐ์๋'๋ผ๋ ํ ์คํธ ๋ค์ ๋ค๋ฅธ ํ ์คํธ๊ฐ ์ฌ ์ ์์์ ๋งํ๋ ๊ฒ์ผ๋ก, ๊ฐ์๋๋ฅผ ์์์ผ๋ก ํ๋ ํ ์คํธ๊ฐ ์๋์ง๋ฅผ ๊ฒ์ํ๋ค๊ณ ํด์ํ ์ ์๋ค.
select FACTORY_ID, FACTORY_NAME, ADDRESS
from food_factory
where address like '๊ฐ์๋%'
order by factory_id
2๏ธโฃ instr ํจ์๋ฅผ ํ์ฉํ์ฌ '๊ฐ์๋' ๋จ์ด ์์น ๋ฐํ ๊ฐ์ ์ด์ฉํ ์ฟผ๋ฆฌ
instr() ํจ์ ์ญ์ 'ํน์ ๋ฌธ์๋ฅผ ๊ฒ์'ํ๋ ํจ์์ด๋ค. ๋ค๋ง ๋ค์ > 0 ์ด๋ผ๋ ์กฐ๊ฑด์ด ๋ถ์ด์ผ ํ๋๋ฐ, ์ด๋ instr()์ ๋ฆฌํด ๊ฐ ๋๋ฌธ์ด๋ค.
instr()์ ์ฐพ๊ณ ์ ํ๋ ๋ฌธ์์ด์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ฌธ์์ด ์์ ์์ ๊ฒฝ์ฐ ๊ทธ ์์น๋ฅผ ๋ฐํํ๋ค. ๋ง์ฝ ์๋ค๋ฉด 0์ ๋ฐํํ๊ธฐ ๋๋ฌธ์ '๊ฐ์๋'๋ผ๋ ๊ธ์๊ฐ address ์ปฌ๋ผ ๋ด ์กด์ฌํ ๊ฒฝ์ฐ ๊ทธ ์์น๋ฅผ ๋ฐํํ๋ค๋ ์๋ฏธ์์ > 0์ด๋ผ๋ ์กฐ๊ฑด์ ๋ฃ์ด์ฃผ์๋ค.
select FACTORY_ID, FACTORY_NAME, ADDRESS
from food_factory
where instr(ADDRESS, '๊ฐ์๋') > 0
-- address ์ปฌ๋ผ ๋ด '๊ฐ์๋'๋ก ์์ํ๋ ๋ฐ์ดํฐ ์์น ๋ฐํ. ์ฆ, 0๋ณด๋ค ํฐ ๊ฐ ๋ฐํํ๋ฉด ๋ฐ์ดํฐ ์กด์ฌ O
order by factory_id