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 NULL
및 IS NOT NULL
을 사용하면 MySQL 쿼리에서 NULL 값을 적절하게 처리하고 테스트할 수 있습니다.
위 내용은 MySQL의 `!=` 연산자가 NULL 값이 있는 행을 제외하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!