MySQL选择最接近的值

时间:2010-09-28 18:40:03

标签: 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

1 个答案:

答案 0 :(得分:19)

只需巧妙地使用ORDER BYLIMIT

   WHERE weight < max_weight
ORDER BY max_weight ASC 
   LIMIT 1