2010-09-28 21 views
6

Ich habe eine Tabelle Raten Versand enthalten und Höchstgewichte, zum Beispiel:MySQL am nächsten Wert auswählen

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

Ich möchte die Versandrate in der Lage sein zu erhalten, bezogen auf das Gewicht der Bestellung, wo das Gewicht kleiner ist als max_weight in der Tabelle. Also, wenn das Gewicht 410 ist, wären die Versandkosten 5,00, wenn das Gewicht 2000 ist der Versand 12,50 und so weiter.

Mit max_weight >= '" . $weight . "' nicht funktioniert, da es nur die erste max_weight zurückgibt, die mehr als das Gewicht ist, zum Beispiel ein Gewicht von 683 kehrt 12.50 als die Versandkosten.

Wie stelle ich sicher, dass es die richtige max_weight erhält?

Antwort

19

Verwenden Sie einfach ORDER BY und LIMIT geschickt.

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

Ich kann nicht glauben, Ordnung zu benutzen, dachte nicht mal an meine Gedanken: | Vielen Dank! – Dan

Verwandte Themen