ORDER BY में गणितीय एक्सप्रेशन
हां, MySQL में ORDER BY क्लॉज में सीधे गणितीय ऑपरेशन उपयोग कर सकते हैं।
उदाहरण: मात्रा × कीमत के अनुसार ऑर्डर
टेबल बनाएं:
mysql> CREATE TABLE orderByMathCalculation (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Quantity INT, Price INT
-> );
डेटा इन्सर्ट करें:
mysql> INSERT INTO orderByMathCalculation(Quantity, Price) VALUES(10, 50), (20, 40), (2, 20), (11, 10);
मूल डेटा:
+----+----------+-------+ | Id | Quantity | Price | +----+----------+-------+ | 1 | 10 | 50 | | 2 | 20 | 40 | | 3 | 2 | 20 | | 4 | 11 | 10 | +------+----------+-------+
केस 1: आरोही क्रम (कुल मूल्य बढ़ते क्रम में)
mysql> SELECT * FROM orderByMathCalculation ORDER BY Quantity * Price;
परिणाम:
+----+----------+-------+ | Id | Quantity | Price | +----+----------+-------+ | 3 | 2 | 20 | -- 2×20=40 | 4 | 11 | 10 | -- 11×10=110 | 1 | 10 | 50 | -- 10×50=500 | 2 | 20 | 40 | -- 20×40=800 +----+----------+-------+
केस 2: अवरोही क्रम (कुल मूल्य घटते क्रम में)
mysql> SELECT * FROM orderByMathCalculation ORDER BY Quantity * Price DESC;
परिणाम:
+----+----------+-------+ | Id | Quantity | Price | +----+----------+-------+ | 2 | 20 | 40 | -- 800 | 1 | 10 | 50 | -- 500 | 4 | 11 | 10 | -- 110 | 3 | 2 | 20 | -- 40 +----+----------+-------+
समर्थित ऑपरेटर
| ऑपरेटर | उदाहरण |
|---|---|
+ | ORDER BY col1 + col2 |
- | ORDER BY col1 - col2 |
* | ORDER BY col1 * col2 |
/ | ORDER BY col1 / col2 |
% | ORDER BY col1 % col2 |
| फंक्शन | ORDER BY ABS(col1 - col2) |
प्रदर्शन नोट: एक्सप्रेशन पर सॉर्ट करने से इंडेक्स उपयोग नहीं हो सकता। बड़ी टेबल के लिए कंप्यूटेड कॉलम या इंडेक्स्ड व्यू पर विचार करें।