집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 쿼리에서 IN 키워드를 사용하여 NULL 값을 처리하는 방법은 무엇입니까?
MySQL IN 키워드는 NULL 값을 제외합니다
특정 값을 기준으로 행을 필터링하기 위해 MySQL 쿼리에서 IN 키워드를 사용하는 경우 예기치 않은 결과가 발생할 수 있습니다. NULL 값으로 작업할 때 발생합니다. 이 문서에서는 이 동작의 이유를 조사하고 이러한 시나리오에서 NULL 값을 올바르게 처리하는 방법을 제공합니다.
당신이 언급한 쿼리:
select count(*) from Table1 where CurrentDateTime>'2012-05-28 15:34:02.403504' and Error not in ('Timeout','Connection Error');
놀랍게도 오류 열에 NULL 값이 포함된 행이 제외됩니다. . 이는 IN 키워드가
Error <> 'TimeOut' AND Error <> 'Connection Error'
와 의미상 동일하기 때문입니다. NULL 값의 속성으로 인해 위 표현식은 true로 평가될 수 없습니다. NULL 값은 자신을 포함한 다른 값과 동일하지 않습니다. 따라서 오류 열에 NULL 값이 있는 행은 필터링됩니다.
결과 집합에 NULL 값을 포함하려면 다음과 같이 쿼리를 조정하면 됩니다.
예:
create table tbl (msg varchar(100) null, description varchar(100) not null); insert into tbl values ('hi', 'greet'), (null, 'nothing'); select 'hulk' as x, msg, description from tbl where msg not in ('bruce','banner');
이 쿼리는 msg가 'hi'인 행만 반환합니다. NULL 값은 불확정성으로 인해 제외되기 때문입니다.
위 내용은 MySQL 쿼리에서 IN 키워드를 사용하여 NULL 값을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!