Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL ग्रुप बाय एंड स्किप ग्रुपिंग ऑन नल वैल्यूज

यदि हमारे पास तालिका में एक अद्वितीय स्तंभ (या स्तंभों का सेट) है, तो हम GROUP BY में एक और व्यंजक जोड़ सकते हैं .

collection_id . होने पर व्यंजक को प्रत्येक पंक्ति के लिए एक अद्वितीय मान लौटाने की आवश्यकता होती है शून्य है। अन्यथा, यह एक स्थिरांक लौटाता है।

मान लें कि हमारे पास एक अद्वितीय id है तालिका में कॉलम, तो हम कुछ ऐसा कर सकते हैं:

... GROUP BY collection_id, IF(collection_id IS NULL, id, 0)

GROUP BY . में वह दूसरी अभिव्यक्ति एक स्थिर मान देता है 0 जब collection_id निरर्थक नहीं है। लेकिन जब संग्रह_आईडी शून्य है तो यह प्रत्येक पंक्ति के लिए एक अद्वितीय मान देता है।

ध्यान दें कि id यहां केवल एक कॉलम का संदर्भ दिया गया है जिसे तालिका के भीतर अद्वितीय होने के लिए परिभाषित किया गया है। प्राथमिक कुंजी एक अच्छा उम्मीदवार है। यदि हमारे पास एक कॉलम पर एक अद्वितीय अनुक्रमणिका नहीं है, तो हम अपनी अनूठी बाधा में प्रत्येक कॉलम के लिए या प्रत्येक पंक्ति पर अद्वितीय होने की गारंटी वाले अभिव्यक्तियों के किसी भी सेट के लिए इसी प्रकार की अभिव्यक्ति दोहरा सकते हैं।

... GROUP BY collection_id
           , IF(collection_id IS NULL, col1, '')
           , IF(collection_id IS NULL, col2, NULL)
           , IF(collection_id IS NULL, col3, collection_id)

वैकल्पिक रूप से, हम एक अभिव्यक्ति का उपयोग कर सकते हैं जो एक अद्वितीय मूल्य उत्पन्न करता है:

... GROUP BY IFNULL(collection_id,UUID())


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL वर्चर इंडेक्स लंबाई

  2. केकपीएचपी में एक विदेशी कुंजी से जुड़े दो तालिकाओं से डेटा पुनर्प्राप्त करना

  3. क्या मैं PHP के साथ MySQL चेतावनियों का पता लगा सकता हूं और उन्हें संभाल सकता हूं?

  4. संग्रहीत कार्यविधि का उपयोग करते समय php त्रुटि

  5. MySQL जॉइन और COUNT सिंगल क्वेरी में