2017-09-29 12 views
-1

나는 모든 것을 꺼내기 위해이 쿼리를 원합니다. 즉, 문자 그대로는 null이고, 값은 null이 아닙니다. 전혀 WHERE를 제공하지 것처럼IS NOT NULL과 IS NULL을 동시에 선택할 수 있습니까?

SELECT * FROM `tbl` WHERE `column` IS NULL AND NOT NULL 

실제로 같은 결과를 기대 : 절 IS NULL AND NOT NULL 구문이 올바른지

# should produce the same result set 
SELECT * FROM `tbl` WHERE `column` IS NULL AND NOT NULL 
SELECT * FROM `tbl` 

있지만, 그것은 올바른 결과를 반환하지 않습니다, 그것은 반환하지 않습니다 뭐든지. MySQL에서도 가능합니까?

IS NULL AND NOT NULL는 - 올바른 구문,하지만 잘못된 결과 -

IS NULL AND IS NOT NULL 위와 동일 - -

IS NULL OR NOT NULL 반환 단지 아무것도 오류, 잘못된 구문은

는 UPD :

NOT의 순서는 의미가 있습니다 GROUP BY와 함께 사용하는 경우.

col IS NOT NULL OR col IS NULL - 확인

col IS NULL OR col IS NOT NULL

- GROUP BY가 제대로 작동하지 않습니다

+2

을'null이며,이 모순되는 조건으로하지 NULL' 어떤 결과를 반환 should't. 아무 결과도이를 성취 할 수 없습니다. – ulferts

+0

참고 : [매우 단순한 SQL 쿼리 인 것처럼 보이는 MCVE를 제공해야하는 이유는 무엇입니까?] (https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve -for-what-like-to-me-to-be-a-very-simple-sql-query) – Strawberry

+0

원하는 결과와 함께 샘플 데이터 제공 –

답변

1

시도 :

WHERE `column` IS NULL OR `column` IS NOT NULL 

그러나 더 조건과 동일하다 등의 조건이 더 의미가 없습니다.

0

이 조건을 자세히 살펴 보겠습니다. not은 전달 된 부울을 무효화하는 부울 연산자입니다. null을 부정하면 null이 반환됩니다. 이제 당신은 and 운영자가 null으로 null.은 행이 지금이 쿼리에 대해 반환되지 않습니다 true하지 발생합니다 true 또는 falsenull을 할 수있다 부울 조건 (column is null) 사이에 적용해야합니다. 한마디로

, 두 가지로 사용자의 상황

  • 두 번째 항은 열을 동시에 null하지 null 수 없습니다 열
  • 누락되는 문제가있다. 논리에서 or 연산자를 호출합니다.

모든 것을 요약하면 : 나의 이해에서

SELECT * FROM `tbl` WHERE `column` IS NULL OR `column` IS NOT NULL 
+0

작동합니다.하지만 그 순서가 중요하다는 것을 알았습니다. 당신의 예제처럼'NOT '이 두 번째 부분에있을 때'GROUP BY'가 나옵니다. 그러나 'col IS NOT NULL'또는 'col is NULL'은 괜찮습니다. 나는 논리를 바꾸는 편이 낫다. – Green

+0

이 답변의 요점은 무엇입니까? – Strawberry