> 데이터 베이스 > MySQL 튜토리얼 > MySQL의 `!=` 연산자가 NULL 값이 있는 행을 제외하는 이유는 무엇입니까?

MySQL의 `!=` 연산자가 NULL 값이 있는 행을 제외하는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2025-01-09 19:31:42
원래의
946명이 탐색했습니다.

Why Does MySQL's `!=` Operator Exclude Rows with NULL Values?

MySQL: NULL 값 비교 이해

개요:
MySQL을 효과적으로 사용하려면 비교 작업 내에서 NULL 값이 어떻게 작동하는지 명확하게 이해해야 합니다. 이 문서에서는 !=(같지 않음) 연산자를 사용할 때 NULL 값의 동작에 중점을 둡니다.

문제: 테이블에 NULL 값을 허용하는 CODE 열이 포함되어 있다고 가정합니다. CODE이 사용되었음에도 불구하고 아래 쿼리에서 !=이 NULL인 행을 생략하는 이유는 무엇입니까?

<code class="language-sql">SELECT * FROM TABLE WHERE CODE!='C'</code>
로그인 후 복사

해결책: MySQL의 != 연산자는 NULL이 아닌 값을 NULL과 비교할 때 참/거짓 결과를 생성하지 않습니다. 비교가 불확실한 것으로 간주됩니다.

NULL을 올바르게 처리하려면 IS NULL 또는 IS NOT NULL을 사용하세요. 다음 쿼리는 CODE이 'C' 또는 NULL인 행을 정확하게 제외합니다.

<code class="language-sql">SELECT * FROM TABLE WHERE CODE IS NULL OR CODE!='C'</code>
로그인 후 복사

이 접근 방식을 사용하면 두 조건 중 하나를 충족하는 행만 제외하고 두 조건을 독립적으로 평가할 수 있습니다.

추가 설명: MySQL 문서나 포럼에서 가끔 볼 수 있지만 CODE != ''CODE IS NOT NULL을 대체하지 않습니다. != 연산자는 값을 비교합니다. IS NULL 값이 없는지 확인합니다.

따라서 다음 쿼리는 아닙니다:

<code class="language-sql">SELECT * FROM TABLE WHERE CODE != ''
SELECT * FROM TABLE WHERE CODE IS NOT NULL</code>
로그인 후 복사

IS NULLIS NOT NULL을 사용하면 MySQL 쿼리에서 NULL 값을 적절하게 처리하고 테스트할 수 있습니다.

위 내용은 MySQL의 `!=` 연산자가 NULL 값이 있는 행을 제외하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿