Study/DB

[MySQL] IF 함수 사용법 및 예제 정리

 

IF 함수란?

IF 함수는 주어진 조건의 결과가 True면 참일때 설정한 값을, False일때는 False일때 설정한 값을 반환하는 역할을 수행합니다.

MySQL IF 함수 공식문서 바로가기

 

MySQL :: MySQL 8.4 Reference Manual :: 15.6.5.2 IF Statement

IF search_condition THEN statement_list [ELSEIF search_condition THEN statement_list] ... [ELSE statement_list] END IF The IF statement for stored programs implements a basic conditional construct. Note There is also an IF() function, which differs from th

dev.mysql.com

 

IF 함수 기본 사용 예제

IF 함수 기본 구조

IF 함수의 기본 구조는 다음과 같습니다.

IF(condition, value_if_true, value_if_false)
  • condition: 참과 거짓을 판단할 조건식입니다.
  • value_if_true: 조건이 참일 때 반환할 값입니다.
  • value_if_false: 조건이 거짓일 때 반환할 값입니다.

 

기본 예제

다음은 테이블 없이 IF 함수를 테스트해볼 수 있는 예제입니다.

SELECT IF(15 >= 10, 'High', 'Low') AS Result;

 

위 쿼리는 숫자가 10 이상일때 참이면 High, 거짓이면 Low를 반환하는 쿼리입니다.

IF 기본 예제 실행 결과
IF 기본 예제 실행 결과

 

 

 

 

 

 

 

IF 함수 응용 예제

NULL 체크하기

IF 함수로 NULL 여부를 체크하는 방법입니다.

아래 쿼리의 결과는 모두 동일합니다.

# if 함수만 사용
select 
    name,
    if(population is null, 'n', 'y')
from world.city_population;

# if + isnull 
select 
    name,
    if(isnull(population), 'n', 'y')
from world.city_population;

 

IFNULL 함수도 존재하지만, IFNULL 함수는 제시된 값이 null일 때 대체할 값을 반환하는 함수라서 목적이 조금 다릅니다.

위 예제는 값이 null일때 반환할 값, null이 아닐 때 반환할 값을 지정하는 예제입니다. 

 

IF 조건 여러개 사용하기

IF 함수 내부에 조건을 여러개 사용할 수 있습니다.

CASE WHEN을 사용하여도 되지만, IF 함수로 다중 조건을 사용하는 방법에 대해 설명드리겠습니다.

SELECT 
    customer_name, 
    total_spent, 
    IF(total_spent >= 1000000, 'VIP', IF(total_spent >= 500000, '골드', '일반')) AS customer_grade
FROM customers;

 

위 쿼리는 누적 구매 금액(total_spent)이 100만원 이상이면 VIP, 50만원 이상이면 골드, 그외에는 일반을 반환하는 예제입니다.