delete FROM tuan_details where tuan_id<>14
tuan_id가 14 인 행만 유지해야하지만 tuan_id가 null 인 행도 유지됩니다.MySql이 예상대로 결과를 반환하지 않습니다.
왜 그렇습니까?
delete FROM tuan_details where tuan_id<>14
tuan_id가 14 인 행만 유지해야하지만 tuan_id가 null 인 행도 유지됩니다.MySql이 예상대로 결과를 반환하지 않습니다.
왜 그렇습니까?
null은 이러한 비교에 포함되지 않습니다. 대신 null이 사용됩니다.
NULL
는 SQL에서 특별 쿼리에 또는 조건을 추가 할 수 있습니다. 보유한 상태 : tuan_id <> 14
은 14
과 다른 값인 경우에만 TRUE
이됩니다. tuan_id
이 NULL
행 (row)의 경우 :
tuan_id <> 14
은 다음과 같습니다
는NULL <> 14
로 평가되는 :
UNKNOWN
그래서 이러한 행이 삭제 하지이다. WHERE
조건이 만족되면 TRUE
으로 계산됩니다. 그들은 FALSE
또는 UNKNOWN
으로 평가되면 거부됩니다.
DELETE
FROM tuan_details
WHERE tuan_id <> 14
OR tuan_id IS NULL ;
: 당신은뿐만 아니라 널 (null)을 삭제하려면
SQL은이 문을 사용할 수 있습니다, 그래서 3-valued logic
를 사용