मेरे पास दो टेबल हैं:
तालिका: विज्ञापन फ़ील्ड: आईडी, कीमत
टेबल: कारें फ़ील्ड: आईडी, ad_id, वर्ष
मैं कारों द्वारा परिणामों का आदेश देने में सक्षम होना चाहता हूं। वर्ष - हालांकि सभी परिणामों की कारों की तालिका में प्रविष्टि नहीं होगी, अर्थात कुछ परिणामों में केवल विज्ञापनों में प्रविष्टियां हो सकती हैं।
फिलहाल प्रविष्टियों के बिना परिणाम मेरे "कार द्वारा आदेश। वर्ष एएससी, विज्ञापन। मूल्य एएससी" खंड द्वारा पहले लौटाए जा रहे हैं, मुझे ऐसे परिणाम चाहिए जिनमें कार प्रविष्टियां नहीं हैं जो परिणामों के बाद दिखाई दें।
कोई विचार मैं इस ORDER BY क्लॉज के साथ कैसे कर सकता हूं?
धन्यवाद,
3 जवाब
आप निम्न के जैसा क्लॉज द्वारा ऑर्डर का उपयोग कर सकते हैं:
ORDER BY cars.id IS NULL ASC, cars.year ASC, ads.price ASC
यह उन पंक्तियों को रखेगा जहां cars.id
पहले शून्य नहीं है, अवरोही मूल्य के आधार पर क्रमबद्ध किया गया है। फिर बाद में वे पंक्तियाँ होंगी जहाँ cars.id
शून्य है, जिसे अवरोही मूल्य के आधार पर भी क्रमबद्ध किया जाता है।
यह आपके प्रश्न से मुझे पूरी तरह से स्पष्ट नहीं है कि आप क्या आदेश चाहते हैं, इसलिए आपको अपनी आवश्यकताओं के अनुरूप इस उत्तर को थोड़ा सा समायोजित करना पड़ सकता है।
cars.id IS NULL ASC
होना चाहिए, न कि DESC
(वह चाहता है कि वे कार्ड वाले विज्ञापनों के बाद दिखाई दें)
दो चुनिंदा कमांड का उपयोग करें .. पहला उन मानों का चयन करता है जिनमें प्रविष्टियां हैं और उन्हें ऑर्डर करता है .. दूसरा बिना किसी प्रविष्टि वाले मानों का चयन करता है और उन्हें आदेश देता है फिर परिणामों में शामिल होता है ..
order by ifnull(year,'1/1/2099'), price
संबंधित सवाल
नए सवाल
mysql
MySQL एक फ्री, ओपन सोर्स रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) है जो स्ट्रक्चर्ड क्वेरी लैंग्वेज (SQL) का उपयोग करता है। इस टैग को अन्य DBs जैसे SQL Server, SQLite आदि के लिए उपयोग न करें। वे विभिन्न DB हैं जो सभी डेटा का प्रबंधन करने के लिए SQL की अपनी बोलियों का उपयोग करते हैं।
order by cars.price DESC
क्यों लिखा है?