2014-02-24 93 views
-2

我正在创建一个查询,该查询返回一组值的最近匹配行。值通常在1-3之间(一个是1-5)。查找最接近的匹配行的多值查询

我不确定正确处理此脚本的最佳方法。我曾有人说过,使用距离是我的方式,而且我有其他人说使用哪里/哪里就是。基本上结果不一定是完全匹配的,它只需要将结果列在接近的等级中。

这里的表格this page基本上是我试图复制。如果任何人都可以阐明我应该采取的查询方法,我会非常感激。

+0

最近的文字匹配?最近的整数匹配?如果是整数,那么您只需添加一个计算列,该列包含距离该值的距离并对距离进行排序。不知道在同一列中,一个或多个匹配项将如何工作, –

+0

整数,但多个整数 –

+0

多个整数? –

回答

1

通过获得所选数字的绝对值减去所有列的列值的总和来生成计算的总“距离”。

SELECT id, ABS(5-col1)+ABS(5-col2)+ABS(5-col3) as distance 
FROM sometable 
ORDER BY distance ASC 

其中5是您比较的值。