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 중국어 웹사이트의 기타 관련 기사를 참조하세요!