MySQL WHERE 절에서 '같지 않음' 조건 활용하기
MySQL에서 특정 값과 일치하지 않는 레코드만 조회하고 싶을 때는 != 연산자 또는 <>(같지 않음) 연산자를 사용할 수 있습니다. 두 연산자는 기능적으로 동일하게 동작합니다.
기본 문법
SELECT * FROM 테이블명 WHERE 컬럼명 <> 조건값;
예제 테이블 생성
위 문법을 실제로 이해하기 위해 간단한 테이블을 만들어 보겠습니다.
mysql> create table NotEqualsDemo -> ( -> Id int -> ); Query OK, 0 rows affected (1.03 sec)
데이터 삽입
INSERT 명령어를 사용해 테이블에 여러 개의 레코드를 추가합니다.
mysql> insert into NotEqualsDemo values(1); Query OK, 1 row affected (0.15 sec) mysql> insert into NotEqualsDemo values(2); Query OK, 1 row affected (0.18 sec) mysql> insert into NotEqualsDemo values(3); Query OK, 1 row affected (0.10 sec) mysql> insert into NotEqualsDemo values(4); Query OK, 1 row affected (0.18 sec) mysql> insert into NotEqualsDemo values(5); Query OK, 1 row affected (0.14 sec)
전체 레코드 확인
SELECT 문으로 현재 저장된 모든 레코드를 조회해 보겠습니다.
mysql> select *from NotEqualsDemo;
실행 결과는 다음과 같습니다.
+------+ | Id | +------+ | 1 | | 2 | | 3 | | 4 | | 5 | +------+ 5 rows in set (0.00 sec)
'같지 않음' 연산자 적용
이제 앞서 소개한 문법을 실제로 적용해 보겠습니다. 아래 쿼리는 <> 3 조건을 사용했기 때문에 Id가 3인 레코드를 제외한 나머지 결과만 반환합니다.
mysql> select *from NotEqualsDemo where Id <> 3;
실행 결과는 다음과 같습니다.
+------+ | Id | +------+ | 1 | | 2 | | 4 | | 5 | +------+ 4 rows in set (0.00 sec)
참고 사항
<> 대신 !=를 사용해도 동일한 결과를 얻을 수 있습니다. 예를 들어 where Id != 3도 같은 방식으로 동작합니다. 다만 NULL 값이 포함된 컬럼에는 '같지 않음' 비교가 적용되지 않으므로, NULL까지 처리하려면 IS NOT NULL 조건을 함께 사용해야 한다는 점을 유의하세요.