2013-08-05 6 views
0

MySQL Workbench와 함께 제공되는 세계 스키마를 사용하고 있습니다. 나는 처음에 미국의 모든 도시를 제공하기 위해이 질의를 시도했다. 그러나, 나는 바닥에 null 항목의 한 행을 계속 보관.몇 가지 유사한 쿼리의 결과를 이해하려고 시도합니다.

select * 
from city 
where CountryCode = 'USA'; 

나는 해결책을 찾아보고 MySQL SELECT only not null values을 찾았다. 그래서, 다음으로 이것을 시도해 보았습니다.

select * 
from city 
where Name is not null and CountryCode = 'USA'; 

첫 번째 쿼리와 정확히 똑같은 것을 준 것입니다. 그래서 나는 다른 접근법을 택하기로 결정했습니다. 대신 여러 열을 얻는, 난 그냥 Name 열 수 있다면보고 싶어 : 놀랍게도

select Name 
from city 
where CountryCode = 'USA'; 

대부분을이 괜찮 았는데, 나를 null를 확인하지 않고.

  • 왜 내 두 번째 방법은 바닥 (또한 그것을 해결하는 방법)에서 나에게 nulls의 행을주지 않았고,
  • 은 왜 마지막 접근하지 :

    그래서 제 질문은 두 가지입니다 하단에 null을 주시겠습니까?

편집 : 또한 정보
추가,이 중요하지만, 처음 두 쿼리는 세 가지 쿼리, 하단에 nulls있는 행을 반환한다는 사실에도 불구하고, 나는 같은 가지고 있는지 확실하지 않습니다 리턴 된 행의 수. 여기 first two queries

마지막 하나의 출력입니다 : 여기

처음 두 쿼리의 출력의
enter image description here

+2

내 생각 엔 null이있는 행이 실제로 결과 집합에 없습니다.아마 거기에 새로운 행을 추가 할 수 있도록 원하는 GUI 클라이언트가 추가했습니다. – Vatev

+0

@Vatev 흥미로운. ** 마지막 쿼리에 왜 나타나지 않겠습니까? ** 내가 말했듯이, 익숙한 지 확실하지 않지만 MySQL Workbench를 사용하고 있습니다. –

+0

결과를 캡쳐 할 수 있습니까? 마지막 기록이 "null"이라고 어떻게 결정 했습니까? – eggyal

답변

2

내가 MySQL의에 대한 그 잘 모르겠지만, 당신이 첫 번째 쿼리는 업데이트 할 수 있습니다 쿼리를 사용하므로 기본적으로 레코드를 수정하거나 추가 할 수 있습니다. 마지막 '널 (null)'행은 데이터의 추가를 허용하기 위해 표시되지만 테이블의 레코드에는 해당하지 않습니다.

마지막 쿼리가 업데이트되지 않으므로 마지막 '빈'줄이 표시되지 않습니다. 당신이 단독 다음 필드를 선택하면

SELECT * FROM `city` WHERE name <> '' AND CountryCode = 'USA' 

마지막 쿼리 : 당신은 당신이 그 분야 같이하지 빈 에 대한 cheking해야 어떤 값를 havent 당신의 필드에 대한 두 번째 쿼리에 대한

+0

그들 사이에는 차이가 없습니다. 업데이트 가능한 쿼리는 MySQL이 어떤 식 으로든 정의하는 것은 아닙니다. –

+0

글쎄, 거기에 차이가있을 수 있지만 City 테이블에 대한 제약 조건에 따라 SQL SERVER에서 같은 쿼리 집합이 업데이트 할 수있는 쿼리가 '새'행을 표시하는 반면 다른 쿼리는 그렇지 않은 쿼리를 제공 할 수 있습니다. 이 행을 표시하십시오. –

+0

결과의 여백에 별표가 표시되면 이것이 올바른 대답이라고 생각합니다. +1 – eggyal

0

.. 을 cheking 때 당신이 수학에서 집합이 LIKE 널 또는 빈 값 을 얻을 수학 설정하고 설정 한 어떤 다른 {0,1,2} A =

사이와 B = {0, 1, 2} 그래서 당신이 열을 선택하면 당신은 세트를 가지고 있으므로 당신은 ' t 값이 공백이거나 null 값이 집합에 정의되어 있지 않음

+0

내가 무슨 말을하는지 잘 모르겠다. –

+0

지금 내 대답을 편집하는 데 몇 분 정도 기다려 주시겠습니까? –

+0

문제 없습니다. 나는 그것이 옳고 그것이 나에게 의미가 있다는 것을 확신 할 때까지 대답을 받아들이지 않을 것입니다. 필자는 필립이 처음 두 쿼리의 하단에 행을 추가 할 수있게 해주었지만 마지막 쿼리의 맨 아래에있는 열에 추가 할 수 없기 때문에 필립이 정확하다고 생각합니다. –

관련 문제