Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL NULL 안전 동등 연산자(<=>)의 행 비교 활용 방법

MySQL에서 NULL 안전 동등 연산자(<=>)를 행(row) 비교와 함께 사용하면, 각 열을 개별적으로 비교한 결과를 논리곱(AND)으로 결합한 것과 완전히 동일하게 작동합니다.

기본 원리

예를 들어 다음과 같은 행 비교 표현식은

(A, B) <=> (C, D)

아래 표현식과 결과가 정확히 같습니다.

(A <=> C) AND (B <=> D)

즉, 두 행의 각 구성 요소를 순서대로 NULL 안전 방식으로 비교한 뒤, 모든 비교 결과가 참일 때 전체가 참이 됩니다.

실제 예제

다음 예제를 통해 이 동작을 직접 확인할 수 있습니다.

mysql> Select (100,50) <=> (50,100);
+-----------------------+
| (100,50) <=> (50,100) |
+-----------------------+
|                     0 |
+-----------------------+
1 row in set (0.00 sec)

mysql> Select (100,50) <=> (100,50);
+-----------------------+
| (100,50) <=> (100,50) |
+-----------------------+
|                     1 |
+-----------------------+
1 row in set (0.00 sec)

결과 분석

첫 번째 쿼리에서는 (100, 50)(50, 100)을 비교했습니다. 첫 번째 요소 100과 50은 서로 다르고, 두 번째 요소 50과 100도 서로 다르므로 최종 결과는 0(거짓)이 반환됩니다.

반면 두 번째 쿼리에서는 (100, 50)(100, 50)을 비교했는데, 모든 요소가 일치하므로 결과는 1(참)이 됩니다.

이처럼 NULL 안전 연산자는 일반 등호(=) 연산자와 달리 피연산자 중 하나가 NULL이어도 오류나 NULL 대신 명확한 참/거짓 값을 반환하기 때문에, NULL 값이 포함될 가능성이 있는 데이터를 행 단위로 비교할 때 특히 유용합니다.