MySQL에서 조건적 로직을 구현하기 위해 IF 함수와 CASE 키워드를 사용할 수 있습니다. 이 두 가지 방법은 각각 다른 용도와 문법을 가지고 있으므로, 각기 어떤 상황에서 사용하는지 이해하는 것이 중요합니다.
IF 함수
정의와 사용법
MySQL의 IF 함수는 조건에 따라 두 가지 값 중 하나를 반환하는 함수입니다.
IF(condition, value_if_true, value_if_false)
- condition: 평가할 조건을 나타내는 표현식
- value_if_true: 조건이 참일 때 반환할 값
- value_if_false: 조건이 거짓일 때 반환할 값
예제
SELECT IF(500 < 1000, 'YES', 'NO');
이 쿼리는 조건 500 < 1000이 참이므로 'YES'를 반환합니다.
SELECT name, IF(age >= 18, age, '미성년자') as age_status
FROM users;
이 쿼리는 사용자 테이블에서 이름과 나이를 반환하는데, 나이가 18살 이상이면 그대로 반환하고, 18살 미만이면 '미성년자'라는 문자열을 반환합니다.
CASE 키워드
정의와 사용법
CASE 키워드는 여러 개의 조건을 평가하여 해당하는 값들을 반환할 수 있습니다.
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2 ...
ELSE resultN
END
- condition: 평가할 조건을 나타내는 표현식
- result: 조건이 참일 때 반환할 값
- ELSE: 모든 조건이 거짓일 때 반환할 기본 값
예제
SELECT OrderID, Quantity,
CASE WHEN Quantity > 10 THEN 'MORE'
WHEN Quantity = 10 THEN 'EQUAL' ELSE 'LESS'
END AS quantity_status
FROM OrderDetails;
이 쿼리는 주문량에 따라 'MORE', 'EQUAL', 또는 'LESS'를 반환합니다.
차이점과 사용 시기
IF 함수 vs CASE 키워드
- IF 함수:
- 단순한 조건에 기반하여 두 가지 값 중 하나를 반환합니다.
- 문법이 간단하고, 한 번에 하나의 조건만 평가할 때 적합합니다.
- 예: IF(age >= 18, '성인', '미성년자')
CASE 키워드:
- 여러 개의 조건을 평가하여 해당하는 값들을 반환할 수 있습니다.
- 복잡한 조건이나 여러 개의 경우를 처리할 때 적합합니다.
- 예: CASE WHEN age >= 18 THEN '성인' WHEN age >= 13 THEN '청소년' ELSE '어린이' END
]
요약
- IF 함수: 단순한 조건에 기반하여 두 가지 값 중 하나를 반환하는 함수. 한 번에 하나의 조건만 평가할 때 적합합니다.
- CASE 키워드: 여러 개의 조건을 평가하여 해당하는 값들을 반환할 수 있는 키워드. 복잡한 조건이나 여러 개의 경우를 처리할 때 적합합니다.
이 두 가지 방법을 적절하게 사용하면, MySQL에서 조건적 로직을 효율적으로 구현할 수 있습니다.
'MySQL' 카테고리의 다른 글
| MySQL의 테이블에서 시간 입력 활용하기 (1) | 2024.12.02 |
|---|---|
| MySQL에서 시간 함수 활용하기 (0) | 2024.11.29 |
| MySQL에서 서브쿼리(SubQuery) 활용하기 (3) | 2024.11.29 |
| MySQL에서 SUM 함수 활용하기 (0) | 2024.11.28 |
| MySQL에서 COUNT 함수 활용하기 (0) | 2024.11.28 |