2012-05-18 99 views
-1

我正在維護一個項目。有一個名爲'timeblock'的表,它有一個名爲'break_minutes'的字段,在傳統設計中,'break_minutes'的類型是int,默認值是NULL。在數據庫中選擇值爲NULL的int類型的行

這個設計不適合我的新任務,因爲我會用'break_minutes'來做一些數學函數。像總和。所以我已經將數據庫模式和默認值更改爲0而不是空值。

所以我必須要改變其「break_minutes」值爲NULL 0

所以我寫的SQL中的所有數據:

update timeblock set break_minutes=0 where break_minutes=NULL 

,結果是空的。

如果我寫的SQL這樣的:

update timeblock set break_minutes=0 where break_minutes=NULL 

的結果僅供其值爲0。

兩個2個sql語句不能達到我的期望行。

任何有此想法的人?謝謝。

+1

難道你不知道如何接受答案 – 2012-05-18 04:43:25

+1

是什麼在這兩個查詢的不同 – 2012-05-18 04:44:50

回答

4

要檢查值是否爲NULL,請使用特殊比較謂詞IS NULL而不是使用比較運算符。 當與NULL進行比較時,比較運算符返回unknown

UPDATE timeblock SET break_minutes=0 WHERE break_minutes IS NULL 
+0

是啊,忘了,謝謝 – ttt

相關問題