2012-06-12 59 views
0

我有表 “测试”与的Fileds &值MySQL查询最近的最低值与实际值问题

id number 
1 13 
2 17 
3 20 
4 30 
5 40 

如果我提供14,15,16那么就应该给我13 如果我提供22 ,24,24那么它应该给我20. 如果我提供13那么它应该给我13. 如果我提供20那么它应该给我20.

我正在寻找这个mysql的查询,它提供最接近的最低值&实际值。

回答

1

假设你发送一个表值的列表

SELECT 
    * 
FROM 
    MyTable 
WHERE 
    number <= (SELECT MIN(requireNuber) FROM InputTable) 
ORDER BY 
    number DESC 
LIMIT 1 

虽然,我敢肯定,你只能从客户端发送的最低值到MySQL(为什么你不能),这将使代码看起来像

SELECT 
    * 
FROM 
    MyTable 
WHERE 
    number <= @MyParameter 
ORDER BY 
    number DESC 
LIMIT 1