2010-07-12 76 views
1

我想獲得的所有記錄,以防result_1不爲空象下面這樣:MySQL:如何獲取記錄具有非空值?

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仍有可能是NULL2.25,因此產生NULL

3

這是因爲你有result_1裏面的引號。這將它從列名轉換爲不爲空的文本值。嘗試...

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 2010-07-14 06:11:21

+0

我想你可能想反引號(')沒有引號(')。 – 2010-07-14 07:50:32

相關問題