2010-09-28 14 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 BY और LIMIT चालाकी से उपयोग करें।

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

मैं अपने दिमाग को पार नहीं करने के आदेश का उपयोग करके विश्वास नहीं कर सकता: | धन्यवाद! – Dan

संबंधित मुद्दे