2013-10-12 3 views
0

Table : tbl_email_scheduler
여기 date_to_send = '2013-10-12' AND send_status = NULL입니다.where 절로 인해 쿼리 결과가 비어 있습니다.

MySQL을 (시간 createing 테이블 내가 준 send_status 기본 NULL에서) :

SELECT 
    id, 
    to_users, 
    subject, 
    message, 
    product_id, 
    date_to_send, 
    send_status, 
    status, 
    createdate 
FROM tbl_email_scheduler 
WHERE date_to_send = '2013-10-12' 

하지만

SELECT 
    id, 
    to_users, 
    subject, 
    message, 
    product_id, 
    date_to_send, 
    send_status, 
    status, 
    createdate 
FROM tbl_email_scheduler 
WHERE date_to_send = '2013-10-12' 
    and send_status != 'Y' 

이 나에게 빈 결과 이유를 제공 결과를 제공합니다? Pls 답변.

답변

2

send_status가 send_status NULL 경우는 아무것도 가져 오지 않을 것이다 경우 의미 Y.
없는 경우 데이터베이스 서버 취급이 NULL 아무것도, 당신이 정의하는 두 번째 쿼리에서이

SELECT 
    id, 
    to_users, 
    subject, 
    message, 
    product_id, 
    date_to_send, 
    send_status, 
    status, 
    createdate 
FROM tbl_email_scheduler 
WHERE date_to_send = '2013-10-12' and (send_status !='Y' OR send_status IS NULL) 
0

나는 '> <'

NULL 다루는 동안 NULL 우선은 필요에 따라 다음과 같은 연산자를 사용한다 NULL 수율이

SELECT id, to_users, subject, message, product_id, date_to_send, send_status, STATUS , createdate FROM tbl_email_scheduler WHERE date_to_send = '2013-10-12' AND send_status <> 'Y' LIMIT 0 , 30 
0

모든 비교를 시도하여 실수 MySQL은 동일하지 않다 생각 .

x IS NULL는 - 상기와 같이, 그러나 반대

x <=> y는 - - 왼손식이 NULL인지

x IS NOT NULL 결정 즉, NULL이 정상으로 간주하고, 안전한 방법으로 어떤지 두 피연산자 비교 값.

0

을 시도하기 때문이다.

먼저 널 (NULL)이 아닌 모든 결과를 가져옵니다이

SELECT 
    id, 
    to_users, 
    subject, 
    message, 
    product_id, 
    date_to_send, 
    send_status, 
    status, 
    createdate 
FROM tbl_email_scheduler 
WHERE date_to_send = '2013-10-12' 
    and (send_status != 'Y' AND send_status IS NOT NULL) 

이처럼 시도하지 적용해야는 Y 조건

동일
관련 문제