优先级与 NULL 表现要点
- 优先级从高到低大致:取反、算术、比较、逻辑
- 同一表达式里想保证顺序,靠加括号最稳妥也最可读
- 算术里任一操作数为 NULL,结果即 NULL
- 比较里任一操作数为 NULL,结果即 NULL 而非假
- 逻辑运算中 NULL 与真假组合,结果可能为 NULL
- 想给 NULL 兜底,用 IFNULL 或 COALESCE 先处理掉
优先级与 NULL 表现对照
| 表达式 | 结果 | 原因 |
|---|---|---|
| 1 + NULL | NULL | 算术遇空即空 |
| 2 = NULL | NULL | 等号判不出空值 |
| NULL OR 1 | 1 | 一边为真即真 |
| NULL AND 0 | 0 | 一边为假即假 |
| NULL AND 1 | NULL | 无法确定真假 |
避坑提醒:写条件时养成习惯:凡可能涉及 NULL 的列,先想清楚它为空时这条规则该算真还是假,再用 IS NULL 或 IFNULL 显式兜住,别让 NULL 悄悄把整条条件变成未知。