MySQL找到最接近的匹配行

时间:2010-01-28 23:01:55

标签: mysql select

我认为这很简单,但我无法理解它。

我有一个包含两列的映射/查找表。 Col1用于从Col2中查找值。

Col1是一个直的INT列,其值以20为增量递增,从500开始。因此,它具有500,520,540等值。这些值中的每一个都映射到Col2中的唯一十进制值。

现在,当我运行查询时,我得到Col1的值不是20的增量。因此,我会被要求从Col2找到类似524.25的值的映射。在这种情况下,它应匹配Col1中520的值,并从Col2返回匹配的十进制值。如果此值为530或更高,则应匹配540,依此类推。

希望这是有道理的。提前致谢。

Vikram Goyal

1 个答案:

答案 0 :(得分:8)

您应该能够首先按差异的绝对值对行进行排序(对于最佳匹配行最低),然后取第一行的Col2

SELECT Col2
FROM your_table
ORDER BY ABS( Col1 - your_value )
LIMIT 1
相关问题