2012-03-20 51 views
2

我有以下表在MySQL中,爲什麼我的NULL值不能正確比較?

Select * from Peeps 
Id Name Age 
1 Sam 16 
2 John NULL 


Select 
Name, 
Age, 
(If Age=NULL,1,0) AS Z 
from peeps; 

結果:

+------+------+---+ 
| name | age | Z | 
+------+------+---+ 
| Sam | 16 | 0 | 
| John | NULL | 0 | 
+------+------+---+ 

預期的效果

+------+------+---+ 
| name | age | Z | 
+------+------+---+ 
| Sam | 16 | 0 | 
| John | NULL | 1 | 
+------+------+---+ 

回答

3

使用這個代替:

IF Age IS NULL 

使用NULL實際上將表示空值,而「NULL」將充當字母N-U-L-L的字符串。根本不一樣。

最終查詢:

SELECT Name, 
     Age, 
     (IF Age IS NULL, 1, 0) AS Z 
    FROM peeps 
相關問題