区间匹配
区间匹配
SELECT p.name, pr.level
FROM products p
JOIN price_rules pr
ON p.price >= pr.min_price
AND p.price < pr.max_price
ORDER BY p.id;| 条件 | ON 支持 >=、<、BETWEEN 等任意表达式 |
|---|---|
| 索引 | 非等值条件难以走等值索引,大表评估代价 |
| 边界 | 统一左闭右开可避免相邻区间重复命中 |
连接条件可以用任何布尔表达式:价格落在区间、时间重叠等场景用范围连接,注意区间重叠会导致一行命中多条规则。
SELECT p.name, pr.level
FROM products p
JOIN price_rules pr
ON p.price >= pr.min_price
AND p.price < pr.max_price
ORDER BY p.id;| 条件 | ON 支持 >=、<、BETWEEN 等任意表达式 |
|---|---|
| 索引 | 非等值条件难以走等值索引,大表评估代价 |
| 边界 | 统一左闭右开可避免相邻区间重复命中 |