2012-12-30 5 views
1

이 코드를 사용하여 내가 만든 테이블에서 데이터를 검색하고 있습니다.SELECT 문이 올바르게 작동하지 않습니다.

SELECT id,shirt_name,boys FROM shirts WHERE boys IS NOT NULL 

소년 열이 입력 된 행을 선택하는 대신 모든 항목을 선택합니다. 내가 테이블을 만든 방법은 다음과 같습니다

CREATE TABLE shirts (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, 
    shirt_name VARCHAR(20) NOT NULL, 
    men VARCHAR(10) NULL, 
    women VARCHAR(10) NULL, 
    boys VARCHAR(10) NULL, 
    girls VARCHAR(10) NULL, 
    babies VARCHAR(10) NULL, 
)ENGINE=INNODB; 

INSERT INTO shirts(shirt_name,men,women,boys,girls,babies) VALUES 
    ('Crewneck Tee','me_crn','wo_crn','bo_crn','gi_crn','ba_crn'), 
    ('V-Neck Tee','me_vnc','wo_vnc','','',''), 
    ('Scoop Neck Tee','','wo_sco','','',''), 
    ('Raglan Tee','me_rag','wo_rag','bo_rag','gi_rag',''), 
    ('Ringer Tee','me_rin','wo_rin','bo_rin','gi_rin',''), 
    ('Cap Sleeve Tee','','wo_cap','','gi_cap',''), 
    ('Tank Top','me_tan','wo_tan','bo_tan','gi_tan',''), 
    ('Spaghetti Strap','','wo_spa','','',''), 
    ('Hoodie','me_hod','wo_hod','bo_hod','gi_hod','ba_hod'); 

내가 뭘 잘못 했습니까?

+0

비어 있지 않은 문자열 (즉, 공간)를 사용할 필요가 무엇인가? –

답변

1
SELECT id,shirt_name,boys FROM shirts WHERE boys != '' 

은 열이 데이터

+0

THanks !!! 이것은 일했다! – Optiq

+0

이 경우 특히 데이터 모델이 주어진다면 진술이 아닌 데이터를 수정해야한다고 말하고 싶습니다. – Joey

4

boys 열에 NULL 인 레코드를 삽입하지 않았습니다. 빈 문자열 인 경우에만 기록합니다. 그리고 빈 문자열 ('')은 NULL과 다르므로 IS NOT NULL과 일치합니다.

+0

고마워요 !!! .. 설명해드립니다. – Optiq

관련 문제