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

MySQL에서 NOT EQUAL(같지 않음) 연산자 사용 방법 완벽 가이드

네, MySQL에는 NOT EQUAL(같지 않음) 연산자가 존재하며, <> 연산자 형태로 사용할 수 있습니다. 참고로 != 연산자도 동일한 기능을 수행합니다.

NOT EQUAL 기본 문법

SELECT * FROM yourTableName WHERE yourColumnName <> yourValue;

예제 테이블 생성하기

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

mysql> create table DoesNotEqualDemo
    -> (
    -> Id int NOT NULL AUTO_INCREMENT,
    -> Name varchar(20),
    -> PRIMARY KEY(Id)
    -> );
Query OK, 0 rows affected (0.98 sec)

데이터 삽입하기

INSERT 명령을 사용하여 테이블에 여러 레코드를 삽입합니다. 이때 NULL 값과 빈 문자열('')도 함께 넣어 NOT EQUAL 연산의 특성을 확인해 보겠습니다.

mysql> insert into DoesNotEqualDemo(Name) values(NULL);
Query OK, 1 row affected (0.24 sec)

mysql> insert into DoesNotEqualDemo(Name) values('John');
Query OK, 1 row affected (0.18 sec)

mysql> insert into DoesNotEqualDemo(Name) values('Carol');
Query OK, 1 row affected (0.43 sec)

mysql> insert into DoesNotEqualDemo(Name) values('Bob');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DoesNotEqualDemo(Name) values('');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DoesNotEqualDemo(Name) values('Larry');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DoesNotEqualDemo(Name) values(NULL);
Query OK, 1 row affected (0.10 sec)

전체 레코드 조회하기

SELECT 문을 사용하여 테이블의 모든 레코드를 출력합니다.

mysql> select *from DoesNotEqualDemo;

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

+----+-------+
| Id | Name  |
+----+-------+
|  1 | NULL  |
|  2 | John  |
|  3 | Carol |
|  4 | Bob   |
|  5 |       |
|  6 | Larry |
|  7 | NULL  |
+----+-------+
7 rows in set (0.00 sec)

NULL과 빈 문자열 제외하고 조회하기

다음은 Name 값이 NULL도 아니고 빈 문자열도 아닌 모든 레코드를 조회하는 쿼리입니다.

mysql> select *from DoesNotEqualDemo where Name <> 'NULL' and Name <> '';

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

+----+-------+
| Id | Name  |
+----+-------+
|  2 | John  |
|  3 | Carol |
|  4 | Bob   |
|  6 | Larry |
+----+-------+
4 rows in set (0.00 sec)

주의 사항: NULL 비교 시 IS NOT NULL 사용

위 예제에서 주목할 점은 SQL에서 NULL은 일반적인 비교 연산자(<>, !=)로 비교할 수 없다는 것입니다. NULL과의 비교는 항상 UNKNOWN을 반환하기 때문에, 실무에서는 다음과 같이 작성하는 것이 더 정확하고 권장되는 방식입니다.

mysql> select *from DoesNotEqualDemo
    -> where Name IS NOT NULL and Name <> '';

결과는 위와 동일하게 John, Carol, Bob, Larry 4개의 행이 출력됩니다. 따라서 NULL 값을 제외할 때는 반드시 IS NOT NULL을 함께 사용하는 것이 안전합니다.