Working with NULL Values on MySQL
今天在操作 MySQL 的時候剛好遇到新增的欄位資料都是 NULL
造成程式會因此有些問題,所以就想把已存在的 row 該欄位是 NULL
的都填上資料。
本來的 schema 是長這樣:
id | name | skill |
---|---|---|
1 | abc | 1 |
2 | def | 1 |
3 | ghy | 4 |
後來新增加一欄 level
id | name | skill | level |
---|---|---|---|
1 | abc | 1 | NULL |
2 | def | 1 | NULL |
3 | ghy | 4 | NULL |
所以就想說直接先都把 level
設為 1,所以直接下了下面這個指令
UPDATE `role` SET level = 1 WHERE level = NULL;
結果什麼都沒更新到...,後來 google 了一番,原來 NULL
是特別的存在,官方表示 NULL means “a missing unknown value”
,如果要對 NULL
做判斷要用 IS NULL
or IS NOT NULL
;所以正確的語法應該要用這樣:
UPDATE `role` SET level = 1 WHERE level IS NULL;
最後終於搞定啦!
參考: