MySQL에는 다른 프로그래밍 언어에서 흔히 볼 수 있는 이중 등호(==) 연산자가 존재하지 않습니다. MySQL에서 두 값을 비교할 때는 단일 등호(=)를 사용하며, 만약 이중 등호를 사용하면 구문 오류가 발생합니다.
이중 등호 사용 시 오류 확인하기
실제로 이중 등호가 작동하지 않는지 직접 확인해 보겠습니다. 먼저 변수를 하나 선언합니다.
mysql> set @Number=10; Query OK, 0 rows affected (0.00 sec)
이제 위에서 선언한 변수 값과 숫자 10을 비교해 보겠습니다. 두 값이 같으면 결과는 1, 다르면 0이 반환됩니다.
이중 등호(==)로 비교하는 경우
mysql> select 10==@Number;
위 쿼리를 실행하면 다음과 같은 오류 메시지가 출력됩니다.
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '==@Number' at line 1
오류 메시지에서 알 수 있듯이 MySQL은 == 연산자를 인식하지 못하고 SQL 구문 오류(ERROR 1064)를 반환합니다.
단일 등호(=)로 비교하는 경우
이번에는 이중 등호 대신 단일 등호를 사용하여 동일한 비교를 수행해 보겠습니다.
mysql> select 10=@Number;
실행 결과는 다음과 같습니다.
+------------+ | 10=@Number | +------------+ | 1 | +------------+ 1 row in set (0.00 sec)
숫자 10과 변수 @Number(값 10)가 서로 같기 때문에 비교 결과로 1(참)이 반환된 것을 확인할 수 있습니다.
정리
MySQL에서는 C, Java, JavaScript 같은 프로그래밍 언어와 달리 이중 등호(==) 비교 연산자를 지원하지 않습니다. 값의 동등 여부를 비교할 때는 반드시 단일 등호(=)를 사용해야 하며, 문자열 비교 시에도 마찬가지입니다. 참고로 NULL 값을 비교할 때는 안전 등호 연산자인 <=>(NULL-safe equal)를 사용하면 유용합니다.