Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySql <> NULL과 IS NOT NULL의 차이점은 무엇입니까?

<시간/>

<> 연산자를 NULL 값과 비교하면 항상 NULL 값을 얻고 결과는 없습니다.

비교를 위해 몇 가지 예를 살펴보겠습니다. −

<미리>mysql> 10 선택 <> NULL;+------------+| 10 <> NULL |+------------+| NULL |+------------+1 행 세트(0.00초) mysql> NULL 선택 <> NULL;+--------------+| NULL <> NULL |+--------------+| NULL |+--------------+1 row in set (0.00초)mysql> select 'Chris' <> NULL;+------------- -+| '크리스' <> NULL |+-----------------+| NULL |+-----------------+1 행 세트(0.00초)mysql> select '' <> NULL;+----------- -+| '' <> NULL |+------------+| NULL |+------------+1 행 세트(0.00초)

먼저 테이블을 생성하겠습니다 -

mysql> Create table DemoTable846(Value int);Query OK, 영향을 받는 행 0개(0.93초)

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> DemoTable846 값에 삽입(NULL); 쿼리 OK, 1행 영향(0.12초)mysql> DemoTable846 값에 삽입(10);쿼리 OK, 1행 영향(0.11초)

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> 선택 *from DemoTable846;

이것은 다음과 같은 출력을 생성합니다 -

+-------+| 값 |+----+| 널 || 10 |+----+2행 세트(0.00초)

다음은 IS NOT NULL 연산자 -

에 대한 결과입니다.
mysql> select *from DemoTable846 where Value IS NOT NULL;

이것은 다음과 같은 출력을 생성합니다 -

+-------+| 값 |+----+| 10 |+----+1 행 세트(0.00초)

다음은 <> 연산자에 대한 결과입니다. 다음은 쿼리입니다 -

mysql> select *from DemoTable846 where Value <> NULL;빈 세트(0.00초)