[SQL] null 값과 MySQL의 비교
SQLnull 값과 MySQL의 비교
나는 NULL이 될 수있는 MySQL의 테이블에 CODE라는 열이. 내가 코드와 일부 행이 있다고 = 내 선택 결과 집합에 무시하려는 'C'. 나는 내 결과 집합에 CODE = NULL 또는 CODE! = 'C'중 하나를 가질 수 있습니다.
다음 쿼리는 NULL로 코드 행을 반환하지 않습니다 :
SELECT * from TABLE where CODE!='C'
그러나 예상대로이 쿼리가 작동하고 나는 그것을 할 수있는 올바른 방법을 알고.
SELECT * from TABLE where CODE IS NULL OR CODE!='C'
내 질문은 왜 코드 만이! = 'C'는 어디 CODE = NULL 행을 반환하지 않습니다 가진 않습니다입니까? 확실히 'C'는 NULL이 아니다. 우리는 여기에 문자로 값을 비교하지 않습니다. 누군가는 그런 식으로 작동하지 않는 이유와 같은 몇 가지 빛을 던질 수 있습니까?
해결법
-
==============================
1.값이 없음에 반대 MySQL의에서 NULL이는 '없는, 알 수없는 값'로 간주됩니다. NULL에이 MySQL의 참조를 살펴 보자.
값이 없음에 반대 MySQL의에서 NULL이는 '없는, 알 수없는 값'로 간주됩니다. NULL에이 MySQL의 참조를 살펴 보자.
NULL이있는 모든 산술 비교는 true 또는 false를 반환하지 않습니다,하지만 반환하는 대신 NULL. 그래서, NULL! = 'C'를 반환 NULL, 진정한 반환에 반대.
'NULL'이있는 모든 산술 비교는 false를 돌려줍니다. SQL에서이 문제를 확인하려면 :
SELECT IF(NULL=123,'true','false')
우리가 ISNULL을 사용하고 NULL 연산자지지 않습니다 필요가 NULL 값을 확인합니다.
-
==============================
2.여기 내 테스트 및 문서를 기반으로 : http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html
여기 내 테스트 및 문서를 기반으로 : http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html
당신은 널 (null)을 비교하여 부울 결과를 얻을 수 있습니다 <=> 참고 :이 NOT EQ 연산자처럼 보이지만, EQ 운영자의
예를 들면 :
select x <=> y; or select @x <=> @y;
이것은 또한 널 대 문자열, 문자열 대 문자열 등을 비교
-
==============================
3.SQL에서 NULL 값은 다른 하나 비교할 수 없습니다 특별한 값이다. 일부 구현 FALSE를 찾을 수 있습니다 (불행히도)하지만 널 (NULL)와 직접 비교의 결과는 항상 NULL이다.
SQL에서 NULL 값은 다른 하나 비교할 수 없습니다 특별한 값이다. 일부 구현 FALSE를 찾을 수 있습니다 (불행히도)하지만 널 (NULL)와 직접 비교의 결과는 항상 NULL이다.
당신은 IS NULL을 사용하고 NULL을지지 않습니다해야 널 값을 테스트합니다.
-
==============================
4.
SELECT * FROM `table_name` WHERE IFNULL(`column_name` != 'C', TRUE)
-
==============================
5.사용자로부터 선택 * 여기서 APPLICATION_ID = '1223333344'및 이름이 null;
사용자로부터 선택 * 여기서 APPLICATION_ID = '1223333344'및 이름이 null;
from https://stackoverflow.com/questions/9608639/mysql-comparison-with-null-value by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL - 어떻게 트랜스 하는가? (0) | 2020.04.15 |
---|---|
[SQL] (*) 또는 카운트 더 나은 MYSQL 수있는 무엇입니까 (1)? (0) | 2020.04.15 |
[SQL] MySQL의 : LIKE의 역 버전은 무엇입니까? (0) | 2020.04.15 |
[SQL] 나는 날짜 시간으로는 SQL 서버 2008 DateTimeOffset으로 변환 할 수있는 방법 (0) | 2020.04.15 |
[SQL] 어떻게 SQL과 중복 행을 삭제하려면? (0) | 2020.04.15 |