MySQL 5.5 operator NULL-safe equal v1.0
|
|
|
|
|
|
|
|
|
1. NULL-safe equal
기본적으로 ‘=’ operator 와 동일한 기능을 수행한다. 하지만 ‘=’ 과 달리 두 인자값이 NULL 이면 1 (true) 을 반환한다. 그리고 하나의 인자값이 NULL 이면 NULL 이 아닌 0 을 반환한다.
결과적으로 NULL 값의 유무에 관계없이 결과값을 0 (FALSE) 이나 1(TRUE) 를 반환한다.
2. Sample
mysql> select 1=null, null=null, 1=1 from dual; +--------+-----------+-----+ | 1=null | null=null | 1=1 | +--------+-----------+-----+ | NULL | NULL | 1 | +--------+-----------+-----+ 1 row in set (0.00 sec)
mysql> select 1<=>null, null<=>null, 1=1 from dual; +----------+-------------+-----+ | 1<=>null | null<=>null | 1=1 | +----------+-------------+-----+ | 0 | 1 | 1 | +----------+-------------+-----+ 1 row in set (0.00 sec) |
위와같이 NULL 값이 비교 인자로 들어가도 참/거짓 값을 리턴한다.
이러한 특징 때문에 흐름제어 때 유용하게 사용할 수 있다.
이를 테면 IF ( 상수 <=> {변수} ) 와 같이 사용할 수 있다. 왜냐하면 ‘<=>’ Operator 의 결과는 항상 참이나 거짓이 나오며, 변수가 NULL 이 들어오는 경우 0 을 반환하기 때문에 인자값이 비어서 들어오는 예외상황에 대비할 수 있다.
3. References
A.
12.3.2.
Comparison Functions and Operators
http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_equal-to