Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में WHERE बनाम HAVING?


हम परिणामों को फ़िल्टर करने के लिए WHERE क्लॉज नामक एक सशर्त क्लॉज का उपयोग कर सकते हैं। इस WHERE क्लॉज का उपयोग करके, हम एक टेबल से आवश्यक रिकॉर्ड्स चुनने के लिए चयन मानदंड निर्दिष्ट कर सकते हैं। HAVING क्लॉज रो के समूह या एग्रीगेट्स के लिए फ़िल्टर कंडीशन निर्दिष्ट करता है।

WHERE क्लॉज का उपयोग एग्रीगेट फंक्शन के साथ नहीं किया जा सकता जबकि HAVING का उपयोग एग्रीगेट फंक्शन के साथ किया जा सकता है। निम्न एक उदाहरण है −

आइए अब एक टेबल बनाते हैं।

mysql> create table WhereDemo 
-> ( 
-> Price int 
-> ); 
Query OK, 0 rows affected (0.64 sec)

टेबल में रिकॉर्ड्स इन्सर्ट करना।

mysql> insert into WhereDemo values(100); 
Query OK, 1 row affected (0.13 sec) 
mysql> insert into WhereDemo values(200); 
Query OK, 1 row affected (0.21 sec) 
mysql> insert into WhereDemo values(300); 
Query OK, 1 row affected (0.15 sec) 
mysql> insert into WhereDemo values(400); 
Query OK, 1 row affected (0.12 sec)

सभी रिकॉर्ड्स डिस्प्ले करने के लिए।

mysql> select * from WhereDemo;

आउटपुट निम्न है।

+-------+
| Price |
+-------+
| 100   |
| 200   |
| 300   |
| 400   |
+-------+
4 rows in set (0.00 sec)

HAVING क्लॉज का उपयोग एग्रीगेट फंक्शन के साथ किया जा सकता है।

mysql> select SUM(Price) FROM WhereDemo HAVING SUM(Price) > 500;

आउटपुट निम्न है।

+------------+
| SUM(Price) |
+------------+
| 1000       |
+------------+
1 row in set (0.00 sec)

यहाँ, यदि हम एग्रीगेट फंक्शन के साथ WHERE का उपयोग करने का प्रयास करेंगे, तो एरर उत्पन्न होगी।

mysql> select SUM(Price) FROM WhereDemo WHERE SUM(Price) > 200; 
ERROR 1111 (HY000): Invalid use of group function

  1. MySQL डेटाबेस फाइलें कहां संग्रहीत करता है MySQL डेटाबेस फाइलें कहां संग्रहीत करता है

    यह जानने के लिए कि MySQL डेटाबेस फाइलें कहां संग्रहीत करता है, आप वेरिएबल @@datadir का उपयोग कर सकते हैं। क्वेरी इस प्रकार है - select @@datadir; निम्नलिखित आउटपुट पथ प्रदर्शित करता है - +---------------------------------------------+ | @@datadir | +---------------------------------------------+

  1. Windows में MySQL तालिका डेटा कहाँ संग्रहीत होता है? Windows में MySQL तालिका डेटा कहाँ संग्रहीत होता है?

    Windows में MySQL तालिका डेटा की डिफ़ॉल्ट संग्रहण स्थान जानने के लिए @@datadir सिस्टम वेरिएबल या SHOW VARIABLES कमांड का उपयोग करें। विधि 1: @@datadir वेरिएबल SELECT @@datadir; आउटपुट: +---------------------------------------------+ | @@datadir | +----------------

  1. - MySQL में WHERE IN के साथ NULL मान कैसे संभालें?

    सिंटैक्स select yourColumnName1, yourColumnName2 from yourTableName where yourValue in(yourColumnName1, yourColumnName2) or yourColumnName1 is NULL; उदाहरण insert into demo60(first_name,last_name) values(John,Smith), (John,Doe), (null,Brown), (David,Miller), (David,Smith), (Chris,Brown); क्वेरी