ํด๋น ๊ธ์ Programmers ์ฝ๋ฉํ ์คํธ ์ฐ์ต์ ํ ๋๋ก MYSQL ๋ก ์์ฑ๋์์ต๋๋ค.\
Q ๋ฌธ์ : ๋ณดํธ์์์ ์ค์ฑํ ์์ ์ ๊ฑฐ์น ๋๋ฌผ์ ์์ด๋์ ์๋ฌผ์ข ,
์ด๋ฆ์ ์กฐํํ๋ ์์ด๋ ์์ผ๋ก ์กฐํํ๋ SQL๋ฌธ์ ์์ฑ
A ์ ๋ต์ฝ๋:
-- ์ฝ๋๋ฅผ ์
๋ ฅํ์ธ์
SELECT I.ANIMAL_ID, I.ANIMAL_TYPE, I.NAME FROM ANIMAL_INS I
LEFT JOIN ANIMAL_OUTS O ON I.ANIMAL_ID=O.ANIMAL_ID
WHERE I.SEX_UPON_INTAKE NOT REGEXP 'Spayed|Neutered'
AND O.SEX_UPON_OUTCOME REGEXP 'Spayed|Neutered'
ORDER BY I.ANIMAL_ID;
๋ฌธ์ ํ์ด
๋จผ์ ์ด ๋ฌธ์ ๋ฅผ ํ๊ธฐ์ํด์๋ ๊ฐ ํ ์ด๋ธ์ ๋ํ ์ดํด๊ฐ (์ฝ๊ฐ) ํ์ํ๋ค.
๋ณดํธ์์์ ์ค์ฑํ ์์ ์ ๊ฑฐ์น ๋๋ฌผ์ ๋ณดํธ์์ ๋ค์ด์ฌ ๋๋ ์ค์ฑํ๊ฐ ๋์ด์์ง ์์์ง๋ง
๋ณดํธ์์์ ๋๊ฐ ๋ ์ค์ฑํ๊ฐ ๋์๋ค๋ฉด ์ฆ, ๋ณดํธ์ ์์์ ์ค์ฑํ ์์ ์ด ์ด๋ฃจ์ด์ก๋ค๋ ๋ง์ด๋ค.
์ฆ, ๋๋ฌผ ๋ณดํธ์์ ๋ค์ด์จ ํ ์ด๋ธ์์ ์ค์ฑํ๊ฐ ์๋ ๋๋ฌผ ์น๊ตฌ๋ค ์ค
์ ์ ๋ณด๋ผ ๋ ์ค์ฑํ๊ฐ ๋ ๋๋ฌผ์น๊ตฌ๋ค์ ์ฐพ์์ฃผ๋ฉด ๋๋ค.
๋ฌธ์ ์ค๋ช ์ ๋ณด๋ฉด ์์ปท์ผ ๊ฒฝ์ฐ Neutered, ์์ปท์ผ ๊ฒฝ์ฐ Spayed, ์ค์ฑํ ์ ์ผ ๊ฒฝ์ฐ Intact ๋ก ํ๊ธฐํ๋ค.
๊ทธ๋ฌ๋ฏ๋ก ๋๋ฌผ ๋ณดํธ์ ๋ค์ด์จ ํ ์ด๋ธ ( ์ค์ฑํ๊ฐ ์๋ ๋๋ฌผ ์น๊ตฌ ) & ์ ์ ํ ์ด๋ธ ( ์ค์ฑํ๊ฐ ๋ ๋๋ฌผ ์น๊ตฌ )
๋๋ฌผ๋ณดํธ์ ๋ค์ด์จ ๋๋ฌผ ํ ์ด๋ธ =ANIMAL_IN
์ ์๊ฐ ๋๋ฌผ๋ค ํ ์ด๋ธ = ANIMAL_OUT
์กฐ๊ฑด ANIMAL_IN ์ค์ฑํ ์ฌ๋ถ ์ปฌ๋ผ์์ Intact ๋จ์ด๊ฐ ๋ค์ด๊ฐ ๋๋ฌผ๋ค์ ์ฐพ์์ฃผ๋ฉด ๋๊ณ
ANIMAL_OUT์์๋ ์ค์ฑํ ์ฌ๋ถ ์ปฌ๋ผ์์ Neutered, Spayed ๋จ์ด๊ฐ ๋ค์ด๊ฐ ๋๋ฌผ๋ค์ ์ฐพ์์ฃผ๋ฉด๋๋ค.
์ด ๋ LIKE ์ฐ์ฐ์์ OR ์ ์จ๋ ๋์ง๋ง ์กฐ๊ธ ๋ ๊ฐ๊ฒฐํ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๊ธฐ์ํ์ฌ REGEXP ์ ๊ท์์ ์ฌ์ฉํ ์ ์๋ค.
-- ์๋ ์ฝ๋๋ ๋ฌด์ํด์ฃผ์ธ์.
SELECT * FROM ALL
-- LIKE ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ํ์ด
WHERE
(I.SEX_UPON_INTAKE LIKE '%Intact%')
AND
(O.SEX_UPON_OUTCOME LIKE '%Spayed%'
OR
O.SEX_UPON_OUTCOME LIKE '%Neutered%')
-- REGEXP์ ์ฌ์ฉํ ์กฐ๊ธ ๋ ๊ฐ๊ฒฐํ ์ฝ๋
WHERE
I.SEX_UPON_INTAKE REGEXP 'Intact'
AND
O.SEX_UPON_OUTCOME REGEXP 'Spayed|Neutered'
์ฐธ๊ณ : REGEXO ์ ๊ท์์ ์ฝ๊ฒ LIKE IN ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ์ฝ๋ค.
์ฆ ํ ์ด๋ธA.์ปฌ๋ผB REGEXP '๋ฐ๋ณด' = ํ ์ด๋ธ A์ ์ปฌ๋ผB ๋ฐ์ดํฐ๊ฐ ์ค ๋ฐ๋ณด๋ผ๋ ๋จ์ด๊ฐ ๋ค์ด๊ฐ ํ์ ์ถ์ถํ์ฌ๋ผ.
'ํ์ ๊ด๊ณ ์ธ > ๊ฐ์ข ๊ฟํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
MYSQL ๋ ์ง ์ฐจ์ด ๊ตฌํ๊ธฐ (0) | 2021.02.25 |
---|---|
MYSQL ์ฝ๋ฉํ ์คํธ์ฐ์ต: REGEXP ์ ๊ทํํ์ (0) | 2021.02.16 |
MYSQL ์ฝ๋ฉํ ์คํธ์ฐ์ต: ์ค๋๊ธฐ๊ฐ ๋ณดํธํ ๋๋ฌผ (0) | 2021.02.14 |
MYSQL ์ฝ๋ฉํ ์คํธ์ฐ์ต: NULL ์ฒ๋ฆฌํ๊ธฐ (0) | 2021.01.14 |
MYSQL ์ฝ๋ฉํ ์คํธ์ฐ์ต: ์ด๋ฆ์ด ์๋ ๋๋ฌผ์ ์์ด๋ (0) | 2021.01.14 |