MySQL找到最接近的匹配行

Vik*_*yal 4 mysql select

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

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

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

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

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

Vikram Goyal

Pet*_*ang 8

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

SELECT Col2
FROM your_table
ORDER BY ABS( Col1 - your_value )
LIMIT 1
Run Code Online (Sandbox Code Playgroud)