2009-04-09 19 views
5

पर सीमित करें, मैं mysql में अलग-अलग कीवर्ड कैसे लागू करूं ताकि यह केवल जांच कर रहा हो कि एक कॉलम फ़ील्ड अद्वितीय है, जबकि अभी भी मेरी तालिका से अन्य कॉलम लौटा रहा है?अलग-अलग कीवर्ड को एक कॉलम

उत्तर

5

ऐसा करने में सक्षम होने के लिए, mysql को अन्य कॉलम के साथ क्या करना है पता होना चाहिए। आप उस कॉलम से ग्रुप करते हैं जो अद्वितीय होना चाहिए और एक फ़ंक्शन का उपयोग करें जो बताएगा कि दूसरों के साथ क्या करना है (एक तथाकथित aggregate function)।

SELECT studentId, COUNT(courseId) AS AmountEnrolledCourses 
FROM student_enrollment 
GROUP BY studentId 

SELECT athlete, MAX(distance) AS PersonalRecord 
FROM longjump 
GROUP BY athlete 
+0

यह भी ध्यान दिया जाना चाहिए कि यदि आप एक समग्र कार्य का उपयोग नहीं करते हैं, तो पहली घटना का मूल्य उपयोग किया जाएगा। –

-3

, टेबल

आप मई से चयन DISTINCT Column_1, Column_2, Column_3 हालांकि, के रूप में यह एक छोटे से भी सीधे आगे लगता है मेरा उत्तर के लिए जवाब के लिए अपने प्रश्न पर विस्तृत करना चाहते हैं।

जब आप DISTINCT के साथ कॉलम नाम का नेतृत्व करते हैं तो यह केवल उस कॉलम पर जांच कर रहा है। क्या मैं इस सवाल को गलत समझ रहा हूं?

+0

है कि मैं वर्तमान में क्या कर रहा हूँ, कि हर क्षेत्र की जाँच करेगा यह अलग है सुनिश्चित करने के लिए: MAX() और COUNT() सामान्य उदाहरण हैं। मैं केवल एक फ़ील्ड की जांच करना चाहता हूं। – gsueagle2008

+0

आप DISTINCT का उपयोग कर सकते हैं और अभी भी अन्य कॉलम से डुप्लिकेट फ़ील्ड परिणाम प्राप्त कर सकते हैं। आपके प्रयासों के परिणाम क्या हैं जो उपरोक्त कथन के उपयोग को रोक रहे हैं? – jerebear

+0

उपर्युक्त क्वेरी केवल कॉलम_1 – jerebear

3

आपको इसके बजाए समूह का उपयोग करने की आवश्यकता होगी।

चयन एसयूएम (ए), MIN (बी), तालिका से सी जहां ए> 1 समूह सी;

ध्यान दें कि यदि आप एक कॉलम पर समूह कर रहे हैं और दूसरों को लौट रहे हैं तो आपको अन्य क्षेत्रों में उन सभी मूल्यों को क्रैक करने के लिए कुछ प्रकार प्रदान करना होगा। इस तरह एक समग्र कार्य कहा जाता है, और आपको अपने डेटाबेस संस्करण के लिए मैन्युअल जांचना होगा ताकि यह पता चल सके कि आपके विकल्प क्या हैं। Mysql के लिए http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html देखें।

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