본문 바로가기

문돌이 존버/DB 및 SQL 스터디

(프로그래머스 SQL 문제 풀이) 있었는데요 없었습니다

반응형

SELECT INS.ANIMAL_ID, INS.NAME 
FROM ANIMAL_INS AS INS
LEFT JOIN ANIMAL_OUTS AS OUTS
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE OUTS.DATETIME < INS.DATETIME
ORDER BY INS.DATETIME

SELECT INS.NAME, INS.DATETIME 
FROM ANIMAL_INS AS INS
LEFT JOIN ANIMAL_OUTS AS OUTS
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE OUTS.ANIMAL_ID IS NULL
ORDER BY INS.DATETIME
LIMIT 3;

SELECT INS.ANIMAL_ID, INS.ANIMAL_TYPE, INS.NAME
FROM ANIMAL_INS AS INS
LEFT JOIN ANIMAL_OUTS AS OUTS
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE INS.SEX_UPON_INTAKE LIKE '%Intact%'
AND OUTS.SEX_UPON_OUTCOME NOT LIKE '%Intact%'
ORDER BY INS.ANIMAL_ID

MySQL에서 LIKE는 attribute 데이터 값에 특정한 문자열이 포함되어 있는지를 확인하는 함수다. 

LIKE '%문자열' -> 특정 문자열로 끝나는 패턴
LIKE '문자열%' -> 특정 문자열로 시작하는 패턴
LIKE '%문자열%' -> 특정 문자열을 포함하는 패턴

이때 REGEXP라는 함수도 사용 가능한데, 여러 개의 문자열을 포함하는 데이터를 검색할 때 용이하다. 

REGEXP '특정 문자열|특정 문자열|특정 문자열' -> 특정 문자열 3개가 포함된 데이터 검색
'|' 기호로 문자열 구분
728x90
반응형