본문 바로가기

카테고리 없음

MySQL 5.5 operator NULL-safe equal v1.0

MySQL 5.5 operator NULL-safe equal v1.0

 

Date

Ver

Etc.

 

 

 

 

 

 

 

 

 

 

 

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