isnull, ifnull, nullif의 사용법은 다음과 같습니다:
isnull(expr)의 사용법:expr이 null이면 isnull()은 1의 값을 반환하고, 그렇지 않으면 0을 반환합니다. mySQL> select isnull(1+1); -> 0 mySQL> select isnull(1/0); -> 1 null value 비교에 = 사용하는 것은 보통 잘못된 선택입니다.
isnull() 함수는 is null 비교 연산자와 일부 동일한 특성을 공유합니다. 주석을 참고하세요.
IFNULL(expr1, expr2) 사용:
expr1이 NULL이 아니면 IFNULL()의 반환 값은 expr1이 됩니다; 그렇지 않으면 expr2 값을 반환합니다. IFNULL()은 사용되는 맥락에 따라 숫자 또는 문자열을 반환합니다.
mysql> SELECT IFNULL(1,0); -> 1 MYSQL> SELECT IFNULL(NULL,10); -> 10 mysql> SELECT IFNULL(1/0,10); -> 10 MYSQL> SELECT IFNULL(1/0, '예');
-> '네'
IFNULL(expr1, expr2)의 기본 결과 값은 STRING, REAL, 또는 순서로 두 표현식 중 더 "일반적"인 값입니다 정수. 표현식 기반 테이블이나 MySQL이 IFNULL()의 반환 값을 내부 메모리의 임시 테이블에 저장해야 하는 상황을 가정해 봅시다: CREATE table tmp SELECT IFNULL(1,'test') as test; 이 예시에서 테스트 열은 CHAR(4) 타입입니다.
NULLIF(expr1, expr2) 사용: 만약 expr1 = expr2가 참이면 반환 값은 NULL이고, 그렇지 않으면 반환 값은 expr1입니다. 이는 CASE WHEN expr1 = expr2와 동일합니다. 그럼 NULL ELSE EXPR1 END는 동일합니다. MYSQL> SELECT NULLIF(1,1);
-> 널 mysql> SELECT NULLIF(1,2); -> 1 매개변수가 같지 않으면 MySQL은 expr1 값을 두 번 받습니다.
|