집 >데이터 베이스 >MySQL 튜토리얼 >SQL에서 `NULL != NULL`이 항상 True를 반환하지 않는 이유는 무엇입니까?
NULL이 있는 불평등이 항상 True를 반환하지 않는 이유
NULL 값을 불평등 연산자("!=")와 비교할 때, NULL은 그 자체와 같지 않기 때문에 종종 결과가 참이어야 한다고 가정합니다. 그러나 SQL과 같은 특정 상황에서는 이 가정이 유효하지 않습니다.
SQL의 삼항 논리
SQL에서 NULL은 알 수 없는 값을 나타냅니다. 이는 "알 수 없음"으로 알려진 참과 거짓을 넘어 세 번째 논리적 상태를 도입합니다. 결과적으로 NULL을 사용한 불평등 비교는 삼항 논리를 따르며 결과는 세 가지 중 하나일 수 있습니다. 옵션:
예:
고려 다음 명령문:
WHERE (A <> B)
A와 B가 모두 NULL인 경우 위 표현식은 "알 수 없음"을 반환합니다. 왜냐하면 둘이 정말로 같지 않은지, 둘 다 알 수 없는지 확인할 방법이 없기 때문입니다.
불평등 검사의 의미
이 삼항 논리는 다음을 나타냅니다. NULL을 사용한 불일치 검사가 항상 true를 반환하는 것은 아닙니다. 정확한 결과를 보장하려면 "IS NULL" 및 "IS NOT NULL"을 사용하여 NULL 조건을 명시적으로 확인해야 합니다.
예를 들어 다음 표현식은 NULL과의 불평등 비교를 올바르게 처리합니다.
WHERE ((A <> B) OR (A IS NOT NULL AND B IS NULL) OR (A IS NULL AND B IS NOT NULL))
이러한 명시적 검사를 통합함으로써 데이터베이스는 NULL 값과 관련된 모든 가능한 사례에 대해 올바른 논리적 결과(참, 거짓 또는 알 수 없음)를 결정할 수 있습니다.
위 내용은 SQL에서 `NULL != NULL`이 항상 True를 반환하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!