逻辑运算符要点
- AND:两边都为真才返回真,任一为假即假
- OR:任意一边为真就返回真,全假才假
- NOT:取反,真变假、假变真
- XOR:两边真假不同才为真,相同则为假
- 逻辑运算遇到 NULL 时,结果可能为 NULL 而非单纯真假
- AND 优先级高于 OR,混用一定要加括号明确顺序
逻辑运算符示例
SELECT 2 AND 0; -- 0
SELECT 2 OR 0; -- 1
SELECT NOT 1; -- 0
SELECT 1 XOR 1; -- 0
SELECT 1 XOR 0; -- 1
SELECT NULL OR 1; -- 1(一边为真即真)
SELECT NULL AND 0; -- 0(一边为假即假)
避坑提醒:`WHERE a = 1 OR b = 2 AND c = 3` 会先算 AND 再算 OR,等价于 `a=1 OR (b=2 AND c=3)`,和直觉常相反。混用 AND/OR 时永远显式加括号。