2012-01-08 14 views
7

मेरे पास टेबल टी में दो पूर्णांक फ़ील्ड ए और बी हैं।MySQL: दो कॉलम के फ़ंक्शन द्वारा आदेश

मैं "SELECT * FROM T ORDER BY f(A,B) DESC"

जहां f(A,B) ए और बी के एक रैखिक संयोजन है ... यानी f(A,B) = mA + nB, जहां एम और एन हैं नंबर की तरह कुछ करना चाहता हूँ।

सही वाक्यविन्यास क्या है?

उत्तर

12

आप (कम से कम) दो विकल्प हैं। पहले काम करना चाहिए भले ही दूसरा नहीं करता है।

5

इसे सरल रखने के लिए, निम्न का उपयोग कर प्रयास करें:

SELECT * FROM T ORDER BY (m * A + n * B) DESC 

जहां एम और एन अपनी जिम्मेदारी पर हैं।

SELECT (n * A + m * B) AS C, * 
    FROM T 
ORDER BY C DESC; -- or ORDER BY 1 DESC 

या:: - संभवतः दोनों - MySQL में आप के लिए काम करना चाहिए

SELECT * 
    FROM T 
ORDER BY (n * A + m * B) DESC; 

एक या अन्य

+0

@ जोनाथन लेफ्लर - थेंक्स, क्षुद्रग्रहों के बारे में भूल गए 8-) –

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