2010-09-28 163 views
6

我有一個表包含運費和最大的權重,如:MySQL的選擇最接近的值

max_weight  shipping_cost 
100   1.50 
250   3.00 
500   5.00 
1000   8.50 
30000   12.50 

我希望能夠基於權重的順序,其中該權重較小,以獲得運費率表中的max_weight。所以如果重量是410,運輸成本是5.00,如果重量是2000,運輸是12.50等等。

使用max_weight >= '" . $weight . "'不起作用,因爲它只是返回比重量多的第一個max_weight,例如683的重量返回12.50作爲運輸成本。

我如何確保它獲得正確的max_weight

回答

19

巧用ORDER BYLIMIT

WHERE weight < max_weight 
ORDER BY max_weight ASC 
    LIMIT 1 
+0

我不能相信使用ORDER BY甚至沒有過我的腦海:|謝謝! – Dan 2010-09-28 18:51:05