6.3.2 흐름 제어 함수
흐름 제어(flow control) 함수란 특정 조건을 확인해 조건에 부합하는 경우와 그렇지 않은 경우에 다른 값을 반환하는 함수입니다. 흐름 제어 함수에는 IF(), IFNULL(), NULLIF() 함수가 있고, 흐름 제어 함수와 비슷한 역할을 하는 CASE 연산자도 있습니다.
IF(expr1, expr2, expr3)
IF() 함수는 3개의 매개변수를 받습니다. 첫 번째 매개변수인 expr1은 조건식이고 expr1이 참(TRUE)이면 expr2를, 그렇지 않으면 expr3를 반환합니다. 예제를 보죠.
코드 6-39
SELECT IF(2 > 1, 1, 0) IF1,
IF('A' = 'a', 'SAME', 'NOT SAME') IF2,
IF(1 = 2, 1, 'A') IF3;
실행결과
첫 번째 IF() 함수를 보면 첫 번째 매개변수가 2 > 1입니다. 2는 1보다 항상 크기 때문에 이 조건은 참입니다. 따라서 두 번째 매개변수인 1을 반환했습니다. 두 번째 함수에는 'A' = 'a'라는 조건이 있습니다. MySQL에서는 기본적으로 대소문자를 구분하지 않으므로 이 조건은 참이 되며 두 번째 매개변수인 SAME을 반환했습니다. 세 번째 함수의 1 = 2라는 조건은 거짓이므로 세 번째 매개변수인 A를 반환했습니다.