范围查询 IN / BETWEEN要点
- IN (值1, 值2) 等价于多个 OR,匹配其中任意一个
- BETWEEN 小 AND 大 是闭区间,两端都包含
- IN 里可放子查询,动态匹配另一张表的结果
- BETWEEN 对日期同样有效,取某段时间的数据
- 离散值很多时 IN 比 OR 可读,但过长也影响解析
- NOT IN 取反,注意里面含 NULL 会让结果变空
范围查询 IN / BETWEEN示例
-- 多个 id 一次查
SELECT * FROM product WHERE id IN (1, 3, 5, 8);
-- 某价格区间
SELECT * FROM product WHERE price BETWEEN 100 AND 500;
-- 某段时间
SELECT * FROM product
WHERE created_at BETWEEN '2026-01-01' AND '2026-03-31';
避坑提醒:NOT IN 的子查询结果一旦含 NULL,整条返回空,用 NOT EXISTS 替代更稳。