2010-01-28 82 views
4

我认为这将是很简单,但我不能让我的头周围。MySQL的找到最近的匹配行

我有两列映射/查找表。 Col1用于从Col2查找值。

Col1中是与它的值增加20的计数,并从500开头,所以,它具有像500,520,540等值的直INT列。这些值中的每一个都映射到Col2中的唯一十进制值。

现在,当我运行查询,我得到Col1中不在的20。因此增量价值,我会被要求找到col2的映射像524.25的值。在这种情况下,它应该将Col1中的值与520匹配,并从Col2返回匹配的十进制值。如果这个值是530或以上,它应该匹配540等等。

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

维克拉姆·戈亚尔

回答

8

你应该能够首先你行由差的绝对值(将最低的最佳匹配行)进行排序,然后坐第一排的Col2

SELECT Col2 
FROM your_table 
ORDER BY ABS(Col1 - your_value) 
LIMIT 1 
+1

辉煌。谢谢! – 2010-01-28 23:16:34