我有下表:
CREATE TABLE numbert_t ( v DOUBLE , id INTEGER, INDEX(v) )
我想使用参数 q 进行查询,该参数对距离 abs(q - v) 中的点进行排序。例如
SELECT v, id, ABS( q - v ) AS d FROM number_t ORDER BY d
我尝试了上面的查询和这个:
SELECT v, id, (v - q) AS d FROM numbers_t WHERE (v - q) > 0
ORDER BY d
我还尝试了上述的细微变化:
SELECT v, id, (v - q) AS d FROM numbers_t WHERE v > q ORDER BY v
它们不等价,但我不介意做两个查询并有两个独立的游标。但是,在所有情况下,EXPLAIN 都表示文件排序,不会使用索引。我可以让 MySQL 以某种方式使用索引来解决这个问题吗?