2010-07-12 2 views
1

는 내가 result_1 아래처럼 null가 아닌 경우 모든 레코드를 얻으려면 :MySQL : 레코드를 가져 오는 방법은 null이 아닌 값을 갖고 있습니까?

SELECT ID, 
     Code, 
     NULLIF(CompareWithField,2.25) as result_1 
    FROM `data` 
WHERE Indexed = 0 
    and code = 142 
    and 'result_1' is not null 

하지만 그 대신, 내가 쿼리를 실행할 때마다, 나는 result_1이 NULL보고하는 경우에도 그 결과를받을 수 있습니다.

모든 솔루션?

답변

0

답변을 찾았습니다. 문제는 별칭 이름이 WHERE 절에서 허용되지 않는다는 것입니다.

이렇게 쿼리를 변경하여 제대로 작동합니다.

SELECT ID, 
     Code, 
     CompareWithField 
    FROM `data` 
WHERE Indexed = 0 
    and code = 142 
    and NULLIF(CompareWithField,2.26) is not null 
1

쿼리에 따라 result_1은 별칭이 지정된 필드입니다. 따라서 CompareWithField은 여전히 ​​NULL 또는 2.25이므로 NULL이 될 수 있습니다.

3

인용문 안에 result_1이 있기 때문입니다. 즉, 열 이름에서 null이 아닌 텍스트 값으로 바뀝니다. 시도하십시오 ...

SELECT ID,Code, NULLIF(CompareWithField,2.25) as result_1 FROM `data` 
    WHERE Indexed=0 and code=142 and result_1 is not null 
+0

은 따옴표 (MySQL의 경우)에없는 경우에 당신은 당신이 아마 역 따옴표를 (') 할 생각 오류 알 수없는 필드 이름 – Maverick

+0

하지 따옴표 (')를 얻을 것이다. –

관련 문제