2012-12-04 43 views
-1

如果給定列有任何數據,我想返回1或0(或者true或false,或者true或null,或者其他最簡單的)。無論此字段是否有數據,其他列仍會返回。低於正確的方式?由於如果mysql列有數據,則返回1或0

SELECT varchar_field IS NOT NULL, some_other_fields 

回答

1

嘗試

SELECT ISNULL(varchar_field), some_other_fields 

如果你想0時varchar_field心不是null

SELECT NOT ISNULL(varchar_field), some_other_fields 

如果你想1時varchar_field心不是null

+0

這是否比我最初的建議或Neo的更快? – user1032531

+1

我不知道它是否更快,但在我看來,它更具可讀性,因此,您可以根據需要得到1或0 –

+0

實際上,如果列中有數據,則返回0。 – user1032531

2

您可以使用case聲明

CASE WHEN varchar_field is null 
THEN 1 
ELSE 0 
END 
+0

IFNULL()似乎只接受兩個參數。 http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_ifnull – user1032531

+0

是的,我的錯誤。你可以使用case語句來實現你想要的。 – Trinity

+0

感謝您的更新。同意這種情況將起作用,但Obl似乎有點可讀性。 – user1032531

相關問題