MySQL의 IF() 함수는 조건에 따라 서로 다른 값을 반환하는 제어 흐름(control flow) 함수입니다. 흔히 IF ELSE 또는 IF THEN ELSE 함수라고도 불리며, 세 개의 표현식을 인자로 받아 첫 번째 표현식이 참(TRUE, 즉 0이 아니고 NULL도 아닌 값)이면 두 번째 표현식을 반환하고, 그렇지 않으면 세 번째 표현식을 반환합니다.
기본 문법
IF(expr, value_if_true, value_if_false)
각 인자의 의미는 다음과 같습니다.
- expr: 평가할 조건식입니다.
- value_if_true: expr이 참(TRUE)으로 평가될 때 반환되는 값입니다.
- value_if_false: expr이 거짓(FALSE)으로 평가될 때 반환되는 값입니다.
사용 예제
조건이 참인 경우와 거짓인 경우 각각 어떻게 동작하는지 아래 예제를 통해 확인할 수 있습니다.
mysql> Select IF(100=100,'YES','NO'); +------------------------+ | IF(100=100,'YES','NO') | +------------------------+ | YES | +------------------------+ 1 row in set (0.00 sec) mysql> Select IF(100=200,'YES','NO'); +------------------------+ | IF(100=200,'YES','NO') | +------------------------+ | NO | +------------------------+ 1 row in set (0.00 sec)
첫 번째 예제에서는 100=100이라는 조건이 참이므로 'YES'가 반환되고, 두 번째 예제에서는 100=200이라는 조건이 거짓이므로 'NO'가 반환됩니다.
참고 사항
MySQL에서는 IF() 함수 외에도 CASE 표현식을 사용해 더 복잡한 다중 조건 분기를 처리할 수 있습니다. 단순한 이지선다(참/거짓) 판단에는 IF() 함수가 간결하고 유용하며, SELECT문뿐 아니라 WHERE, ORDER BY 등 다양한 절에서 활용할 수 있습니다.