INSERT INTO t(phone) VALUES (NULL); -- 電話未知
INSERT INTO t(phone) VALUES (''); -- 無電話
兩者語意完全不同,切勿混淆。
NULL = NULL → NULL(非 TRUE)NULL 運算結果皆為 NULL(如 1+NULL、CONCAT('a',NULL))。IS NULL / IS NOT NULL,= NULL 永不命中。| 語法 | 說明 |
|---|---|
| IS NULL / IS NOT NULL | 判斷 NULL |
| IFNULL(expr, val) | expr 為 NULL 回傳 val |
| COALESCE(v1,v2,...) | 回傳第一個非 NULL 值 |
| <=> | NULL-safe 等值比較(NULL=<=>NULL 為 TRUE) |
NOT NULL。COUNT(*) 計算列數(含 NULL)。COUNT(col)、SUM()、AVG()、MIN()、MAX() 忽略 NULL。ORDER BY:NULL 排最前;DESC 時排最後。GROUP BY、DISTINCT:所有 NULL 視為同一群組。TIMESTAMP 插入 NULL → 當前日期時間。AUTO_INCREMENT 整數欄插入 NULL → 下一序號。LOAD DATA INFILE:檔案中用 \N 或 NULL 字面值表示 NULL;空欄位預設寫入空字串。