所以,我有一个看起来大致相同的mysql表,其中前两列包含范围。
1 , 5 , Value1
6 , 14 , Value2
14 , 18 , Value3
如何查询找到某个值介于哪一行(即,如果我有9,则返回Value2;如果我有2,则返回Value1)。这张表大约10mb,所以效率越高越好。
谢谢!
答案 0 :(得分:2)
实际上它与madgnome的答案几乎相同,但IMO更清洁一点:
SELECT ... WHERE 9 BETWEEN min_value AND max_value;
答案 1 :(得分:1)
SELECT
val
FROM
table
WHERE
table.range_min <= 9
AND table.range_max >= 9
/* OR 9 BETWEEN table.range_min AND table.range_max*/
为了提高效率,请为range_min和range_max列添加索引。
答案 2 :(得分:0)
where fielda >= 9 and fieldb <= 9
在表格中添加包含此2字段的索引
答案 3 :(得分:0)
select col3 from thetable where 2 between col1 and col2
您希望col1
和col2
上的综合索引能够很好地发挥作用。