mysql> create table betweentest (id integer unsigned not null auto_increment, start integer not null, end integer not null, primary key(id)); mysql> insert into betweentest (start, end) values (1,10), (10, 20), (20, 30), (40, 50), (50, 60); Query OK, 5 rows affected (0.00 sec) Records: 5 Duplicates: 0 Warnings: 0 mysql> SELECT * FROM betweentest WHERE 25 BETWEEN start AND end; +----+-------+-----+ | id | start | end | +----+-------+-----+ | 3 | 20 | 30 | +----+-------+-----+ 1 row in set (0.00 sec) mysql> EXPLAIN SELECT * FROM betweentest WHERE 25 BETWEEN start AND end; +----+-------------+-------------+------+---------------+------+---------+------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------------+------+---------------+------+---------+------+------+-------------+ | 1 | SIMPLE | betweentest | ALL | NULL | NULL | NULL | NULL | 5 | Using where | +----+-------------+-------------+------+---------------+------+---------+------+------+-------------+ 1 row in set (0.00 sec) mysql> alter table betweentest ADD INDEX(start, end); Query OK, 5 rows affected (0.02 sec) Records: 5 Duplicates: 0 Warnings: 0 mysql> EXPLAIN SELECT * FROM betweentest WHERE 25 BETWEEN start AND end; +----+-------------+-------------+-------+---------------+-------+---------+------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------------+-------+---------------+-------+---------+------+------+-------------+ | 1 | SIMPLE | betweentest | range | start | start | 4 | NULL | 3 | Using where | +----+-------------+-------------+-------+---------------+-------+---------+------+------+-------------+ 1 row in set (0.00 sec)