हम परिणामों को फ़िल्टर करने के लिए WHERE क्लॉज नामक एक सशर्त खंड का उपयोग कर सकते हैं। इस WHERE क्लॉज का उपयोग करके, हम एक तालिका से आवश्यक रिकॉर्ड का चयन करने के लिए एक चयन मानदंड निर्दिष्ट कर सकते हैं। HAVING क्लॉज पंक्तियों या समुच्चय के समूह के लिए फ़िल्टर शर्तों को निर्दिष्ट करता है
WHERE क्लॉज का इस्तेमाल एग्रीगेट फंक्शन के साथ नहीं किया जा सकता है जबकि HAVING को एग्रीगेट फंक्शन के साथ इस्तेमाल किया जा सकता है। निम्नलिखित एक उदाहरण है -
आइए अब एक टेबल बनाते हैं।
mysql> टेबल बनाएं जहां डेमो -> ( -> Price int -> );क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.64 सेकंड)
तालिका में रिकॉर्ड सम्मिलित करना।
mysql> व्हेयरडेमो वैल्यू (100) में डालें; क्वेरी ओके, 1 पंक्ति प्रभावित (0.13 सेकंड) mysql> व्हेयरडेमो वैल्यू (200) में डालें; क्वेरी ओके, 1 पंक्ति प्रभावित (0.21 सेकंड) mysql> व्हेयरडेमो वैल्यू में डालें ( 300);क्वेरी ओके, 1 पंक्ति प्रभावित (0.15 सेकंड)mysql> व्हेयरडेमो वैल्यू (400) में डालें; क्वेरी ओके, 1 पंक्ति प्रभावित (0.12 सेकंड)
सभी रिकॉर्ड प्रदर्शित करने के लिए।
mysql> *व्हेयरडेमो से चुनें;
निम्न आउटपुट है।
<पूर्व>+----------+| कीमत |+----------+| 100 || 200 || 300 || 400 |+----------+4 पंक्तियाँ सेट में (0.00 सेकंड)HAVING क्लॉज का इस्तेमाल एग्रीगेट फंक्शन के साथ किया जा सकता है।
mysql> WhereDemo HAVING Sum(Price)> 500 से राशि (मूल्य) चुनें;
निम्न आउटपुट है।
<पूर्व>+---------------+| योग(कीमत) |+---------------+| 1000 |+---------------+1 पंक्ति सेट में (0.00 सेकंड)यहां, अगर हम समग्र फ़ंक्शन के साथ WHERE का उपयोग करने का प्रयास करेंगे, तो एक त्रुटि उत्पन्न होगी।
mysql> व्हेयरडेमो से योग (मूल्य) चुनें जहां योग (मूल्य)> 200; त्रुटि 1111 (HY000):समूह फ़ंक्शन का अमान्य उपयोग