[SQL] MYSQL 구문은 NULL의 존재하에 동일하지 평가하지
SQLMYSQL 구문은 NULL의 존재하에 동일하지 평가하지
나는 MySQL의 쿼리에 문제가 있어요. 나는 다음을 수행 할 것이라고 생각 그래서 나는 2의 값을 제외 할 :
table products
id | name | backorder
-------------------
1 | product1 | NULL
2 | product2 | NULL
3 | product3 | 2
SELECT name from `products` p
WHERE backorder <> '2'
그러나이 제품 1의 원하는 결과를 제공하지 않는 제품이 그것은 빈 결과 테이블을주고있다.
내가 사용하는 경우 반면에
SELECT name from `products` p
WHERE backorder = '2'
그런 다음 생성합니다 제품 3을. 그러나 나는이 동일하지 않은 레코드를 싶어.
뭔가는 <> '2'와 함께 작동하지 않습니다. 그것은 NULL 값이 떨어져 던지는 것을 될 수 있을까요? 사람이 수정을 제안 할 수 있습니다.
사전에 감사합니다!
해결법
-
==============================
1.사용이 null의 경우, 또는 단순히 알 수 있기 때문에 NULL 값을 비교하는 NULL을지지 않습니다.
사용이 null의 경우, 또는 단순히 알 수 있기 때문에 NULL 값을 비교하는 NULL을지지 않습니다.
SELECT name from products p WHERE backorder IS NULL OR backorder <> 2
-
==============================
2.당신이 사용할 수있는:
당신이 사용할 수있는:
SELECT `name` FROM `products` `p` WHERE NOT `backorder` <=> '2'
또는
SELECT `name` FROM `products` `p` WHERE !(`backorder` <=> '2')
-
==============================
3.이 열 죄송합니다
이 열 죄송합니다
우리는이를 사용할 수 있습니다
SELECT name from products p WHERE COALESCE(backorder,1) <> 2
-
==============================
4.이 시도하고 참조하십시오.
이 시도하고 참조하십시오.
SELECT name from `products` p WHERE backorder != '2'
from https://stackoverflow.com/questions/16186674/mysql-syntax-not-evaluating-not-equal-to-in-presence-of-null by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 검색어 "사이"오라클 날짜 (0) | 2020.06.25 |
---|---|
[SQL] 시간 반올림 두 날짜 사이의 차이를 가져 오는 방법 (0) | 2020.06.25 |
[SQL] 조건의 경우와 업데이트의 MySQL (0) | 2020.06.25 |
[SQL] 검색 데이터베이스에 문자열의 일부를 대체 (0) | 2020.06.25 |
[SQL] MySQL은 컬럼의 마지막 두 글자 스트립 (0) | 2020.06.25 |