MySQL BETWEEN索引

时间:2012-09-24 10:50:55

标签: mysql database-indexes

我必须弄清楚一个数字(由于前导零而存储为字符串)是否属于特定范围。范围看起来像这样:

12 - 14
3456 - 4567

1233435将被视为落在第一个范围内(匹配是从左侧开始)。该数字最多可以包含20个数字,并且我有一个包含所有范围的文件。我导入了范围,将尾随零添加到下限,尾随9到上限,达到20的长度。这是为了能够处理可变长度的数字 - 它们在右边用零填充,这样我就可以以下查询:

SELECT * FROM ranges WHERE 'my padded number' BETWEEN bound_lower AND bound_upper

由于我有几千个范围,我想在桌子上放一个索引,但我不确定如何实现这个目标。

谢谢, 孟德尔

1 个答案:

答案 0 :(得分:0)

这似乎是你采取的有效方法。要添加索引,您只需:

 CREATE INDEX between_index on ranges (bound_lower, bound_upper);

您可以使用EXPLAIN验证它是否正常工作。