示例
示例
SELECT * FROM orders WHERE status IN (1, 3, 5);
SELECT * FROM users WHERE city IN ('Beijing', 'Shanghai');
-- 等价写法
SELECT * FROM orders WHERE status = 1 OR status = 3 OR status = 5;| 等价 | x IN (a,b) 即 x = a OR x = b |
|---|---|
| NULL 规则 | 列表含 NULL 时:命中仍命中,不命中变 UNKNOWN |
| 列表长度 | 值很多时建议改用临时表 INNER JOIN |
IN 的值按常量处理,优化器可改写为多点等值查找(range 访问)。