2009-08-20 13 views
9

मान लें कि मेरे पास karma_up और karma_down के साथ एक टेबल है। जब भी कोई व्यक्ति karma_up को वोट देता है तो बढ़ता जाता है और जब भी कोई व्यक्ति karma_down को वोट देता है तो उसे भी बढ़ाया जाता है। मैं इन पंक्तियों का चयन कैसे खींच सकता हूं और उन्हें इन नए मूल्यों के योग द्वारा आदेश दिया जा सकता है? ऑर्डर द्वारा (karma_up - karma_down) काम नहीं करता है कि मैं कैसे चाहता हूं। मैं बस उच्चतम कर्म ऊपर शीर्ष के साथ पंक्तियों चाहता हूँ।दो फ़ील्ड के योग द्वारा आदेश

+0

इस सवाल का अंतिम परिणाम चुनें *, कास्ट था मेरे नकारात्मक कर्म मूल्यों के लिए बहुत बड़ी संख्या प्राप्त करना। यह मेरे कर्म_अप और कर्म_डाउन फ़ील्ड को अनगिनत करने के लिए मिलता है लेकिन सीएएसटी() समाधान था। धन्यवाद हाँ! –

उत्तर

19

बहुत ही सरल

SELECT 
ID, KARMA_UP, KARMA_DOWN, (KARMA_UP-KARMA_DOWN) AS USER_KARMA 
FROM KARMA 
ORDER BY USER_KARMA DESC 
+0

ओपी शीर्ष पर सबसे ज्यादा चाहता है और मुझे लगता है कि उसे बिल करविन के रूप में डीईएससी की जरूरत है। –

+0

धन्यवाद। मैंने अपना उत्तर –

0

इस काम करता है? यदि नहीं, तो क्या आप अपने प्रश्न में परिणाम शामिल कर सकते हैं? अभिव्यक्ति पर आदेश देना अपेक्षित काम करना चाहिए। `से - (karma_down के रूप में हस्ताक्षर karma_up) के रूप में karma_total links` द्वारा karma_total DESC आदेश मैं क्योंकि मैं था कास्ट करने के लिए आवश्यक

SELECT `post_id`, `karma_up`, `karma_down`, `karma_up` - `karma_down` AS `total` 
ORDER BY `total` DESC 
6
SELECT *, karma_up - karma_down AS karma_total 
FROM MyTable 
ORDER BY karma_total DESC; 
+0

तय किया, ठीक उत्तर पोस्ट किए जाने के ठीक बाद, एक सही उत्तर पोस्ट किया गया। – Pachonk

+1

आप कुछ जीतते हैं, आप कुछ खो देते हैं। महत्वपूर्ण बात यह है कि ओपी को उनके प्रश्न का उत्तर मिला। –

+1

सच है, लेकिन सिर्फ सहानुभूतिपूर्ण है। – Pachonk

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