优先级演示
优先级演示
SELECT * FROM t
WHERE a = 1 AND b = 2 OR c = 3;
-- 等价于:(a = 1 AND b = 2) OR c = 3
SELECT * FROM t
WHERE (a = 1 OR b = 2) AND c = 3; -- 显式括号更清晰| 优先级 | NOT 高于 AND,AND 高于 OR |
|---|---|
| 括号 | 复杂条件一律显式加括号 |
| 求值顺序 | 标准不保证短路,优化器可重排条件 |
三值逻辑下:0 AND NULL 得 0,1 OR NULL 得 1,其余组合为 NULL,比直觉更复杂。