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

MySQL에서 '같지 않음(NOT EQUAL)' 연산자 사용하는 방법

MySQL '같지 않음' 연산자란?

MySQL에서 특정 값과 일치하지 않는 데이터를 조회하려면 <> 연산자를 사용하면 됩니다. 참고로 != 연산자도 동일한 기능을 수행하므로, 둘 중 편한 것을 선택해 사용할 수 있습니다.

기본 문법은 다음과 같습니다.

SELECT * FROM yourTableName WHERE yourColumnName <> anyValue;

예제 테이블 생성하기

문법을 실제로 이해하기 위해 먼저 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table NotEqualDemo
-> (
-> ProductId int
-> );
Query OK, 0 rows affected (0.53 sec)

이제 INSERT 명령어를 사용해 테이블에 몇 개의 레코드를 삽입합니다.

mysql> insert into NotEqualDemo values(101);
Query OK, 1 row affected (0.13 sec)

mysql> insert into NotEqualDemo values(102);
Query OK, 1 row affected (0.23 sec)

mysql> insert into NotEqualDemo values(103);
Query OK, 1 row affected (0.11 sec)

mysql> insert into NotEqualDemo values(104);
Query OK, 1 row affected (0.13 sec)

mysql> insert into NotEqualDemo values(105);
Query OK, 1 row affected (0.12 sec)

SELECT 명령어로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from NotEqualDemo;

실행 결과는 다음과 같습니다.

+-----------+
| ProductId |
+-----------+
| 101       |
| 102       |
| 103       |
| 104       |
| 105       |
+-----------+
5 rows in set (0.00 sec)

<> 연산자로 특정 값 제외하고 조회하기

이번에는 <> 연산자를 사용해 ProductId가 104가 아닌 데이터만 필터링해 보겠습니다. 이렇게 하면 104를 제외한 나머지 데이터가 모두 출력됩니다.

mysql> select *from NotEqualDemo where ProductId <> 104 or ProductId is null;

실행 결과는 다음과 같습니다.

+-----------+
| ProductId |
+-----------+
| 101       |
| 102       |
| 103       |
| 105       |
+-----------+
4 rows in set (0.00 sec)

NULL 처리 시 주의사항

위 예제에서 or ProductId is null 조건을 함께 사용한 이유는, SQL에서 NULL은 비교 연산자(<>, !=)와 비교했을 때 결과가 NULL로 반환되어 자동으로 제외되기 때문입니다. 따라서 컬럼에 NULL 값이 포함될 가능성이 있다면, NULL인 행도 함께 조회하려면 위처럼 IS NULL 조건을 명시적으로 추가하는 것이 좋습니다.