2009-04-01 2 views
3

이름, 나이 및 주소가있는 테이블이 있습니다. 테이블의 데이터가 5 행으로 나옵니다. 일부 행에 대해서는 나이가 null입니다. 나이가 아닌 모든 데이터를 표시해야합니다. 없는.null 논리 연산자와 함께 사용

select * from sample_table where (age! = null);

출력이 표시되지 않으며 오류도 표시되지 않습니다.이 점에 대해 설명하십시오. 감사합니다.

답변

4

NULL의 경우 IS 또는 IS NOT을 사용해야합니다. 다음 쿼리는 작동합니다 :

SELECT * FROM sample_table WHERE (age IS NOT NULL) 
+0

위의 질의가 아니기 때문에

당신은 NULL에 대해 직접 비교할 수 없습니다 ! = 및 "is not"둘 다 논리 연산자입니다. 그러면 대답이 왜 다른가요? – Warrior

+0

그건 MySQL이 설계된 방식 일 뿐이므로 Null은 일반적인 문자열/숫자 값처럼 취급 될 수 없으므로 IS NOT Null 또는 IS NULL을 사용하여 올바른 값을 확인해야합니다. –

2

설명을 MySQL의

NULL 값의 개념에서 자주 NULL이 동일하다고 생각 SQL에 이민자를위한 혼란의 일반적인 원인이다 공백으로 된 것 문자열 ''. 그렇지 않다.

SQL에서 NULL 값은 다른 값인 과 비교하여 절대로 참이되지 않습니다. 항상 NULL을 포함하는 표현은 달리 사업자에 대한 문서 및

당신은 NULL입니다 열 값을 검색하려면

, 당신은 expr이 = NULL 테스트를 사용할 수 없습니다에 표시하지 않는 한 NULL 값 을 생성합니다.

NULL 값을 찾으려면 IS NULL 테스트를 사용해야합니다.

1

IS NULL 또는 IS NOT NULL을 사용해야합니다. 이 값은 (아무의 pedants 제발!)

NULL on Wikipedia

MySQL은, 사이베이스, SQL 서버 ... 그건 모두 같은