多值查询以查找最接近的匹配行

时间:2014-02-24 19:32:48

标签: php mysql

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

我不确定找到这个脚本的最佳方法。我有一些人说使用距离就是这样,我让其他人说使用在哪里/或就是这样。基本上结果不一定是完全匹配,它只需要将结果列为接近等级。

this page上的表格基本上就是我想要复制的内容。如果有人能够阐明我应该采取的查询方法,那将非常感激。

1 个答案:

答案 0 :(得分:1)

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

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

其中5是您要比较的值。