본문 바로가기
MYSQL

[MYSQL] UNION, LIKE

by 슈크림 붕어빵 2023. 10. 20.

https://school.programmers.co.kr/learn/courses/30/lessons/131537

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

ONLINE_SALE

OFFLINE_SALE

SELECT DATE_FORMAT(SALES_DATE, "%Y-%m-%d") AS SALES_DATE, PRODUCT_ID, USER_ID,SALES_AMOUNT
FROM ONLINE_SALE
WHERE SALES_DATE LIKE "2022-03%"

UNION
SELECT DATE_FORMAT(SALES_DATE, "%Y-%m-%d") AS SALES_DATE, PRODUCT_ID,NULL AS USER_ID,SALES_AMOUNT
FROM OFFLINE_SALE
WHERE SALES_DATE LIKE "2022-03%"
ORDER BY SALES_DATE, PRODUCT_ID,USER_ID

결과

UNION

UNION은 각 테이블을 만들어서 합치는 방식이다.

그러므로 형식이 같아야한다. OFFLINE_SALE에는 PRODUCT_ID가 없으므로 NULL으로 맞춰서 칼럼을 형성해주어야한다. UNION은 중복을 제거한다.

중복을 제거하지 않기를 원한다면 UNION ALL을 사용한다.

LIKE

LIKE는 특정 문자를 검색할 때 이용한다.

1. %

%는 임의의 문자열을 나타낸다. 즉 몇글자이건 괜찮다.

뒤에 사용하는 경우

WHERE 칼럼명 LIKE 2022-03-% => 2022-03-으로 시작하는 경우를 검색

앞에 사용하는 경우

WHERE 칼럼명 LIKE %-03-27 => - 03-27 으로 끝나는 경우를 검색

앞, 뒤에 사용하는 경우

WHERE 칼럼명 LIKE %-03-% => -03-이 들어가는 경우 탐색

 

2. _

_는 임의의 한글자를 의미한다.

010-1234-1_5_과 같이 글자수가 정해져 있고, 임의의 한글자가 들어간 경우를 탐색한다.