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

MySQL क्वेरी में 'Empty set' को कैसे बदलें?

परिचय

जब कोई क्वेरी कोई पंक्ति नहीं लौटाती (Empty set), और आप इसके बजाय एक डिफ़ॉल्ट मान दिखाना चाहते हैं, तो MySQL का COALESCE() फंक्शन उपयोगी है। यह पहला नॉन-NULL मान लौटाता है।

उदाहरण: टेबल बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable (
    -> Code VARCHAR(20)
    -> );
Query OK, 0 rows affected (1.64 sec)
mysql> INSERT INTO DemoTable VALUES('10');
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable VALUES('45');
Query OK, 1 row affected (0.30 sec)
mysql> INSERT INTO DemoTable VALUES('78');
Query OK, 1 row affected (0.21 sec)

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable;

आउटपुट:

+------+
| Code |
+------+
| 10   |
| 45   |
| 78   |
+------+
3 rows in set (0.00 sec)

मौजूद न होने वाले कोड के लिए डिफ़ॉल्ट मान दिखाने की क्वेरी

mysql> SELECT COALESCE(MAX(Code), 'false') AS WhenReturnSetIsEmpty
    -> FROM DemoTable
    -> WHERE Code = '90';

परिणाम

+----------------------+
| WhenReturnSetIsEmpty |
+----------------------+
| false                |
+----------------------+
1 row in set (0.00 sec)

व्याख्या

  • WHERE Code = '90' - कोई पंक्ति मेल नहीं खाती (Empty set)
  • MAX(Code) - खाली सेट पर एग्रीगेट फंक्शन NULL लौटाता है
  • COALESCE(NULL, 'false') - पहला नॉन-NULL मान 'false' लौटाता है
  • परिणाम: 1 पंक्ति जिसमें 'false' है (Empty set के बजाय)

COALESCE पैटर्न

COALESCE(expr1, expr2, expr3, ...)
-- पहला नॉन-NULL एक्सप्रेशन लौटाता है
-- सभी NULL हों तो NULL लौटाता है

अन्य उपयोग

  • COALESCE(column, 'N/A') - NULL मानों के लिए डिफ़ॉल्ट
  • COALESCE(col1, col2, col3) - पहला उपलब्ध मान
  • COALESCE(SUM(amount), 0) - खाली योग के लिए 0

विकल्प: IFNULL / IF

SELECT IFNULL(MAX(Code), 'false') FROM DemoTable WHERE Code = '90';
SELECT IF(MAX(Code) IS NULL, 'false', MAX(Code)) FROM DemoTable WHERE Code = '90';

नोट

यह तकनीक एग्रीगेट क्वेरीज (COUNT, SUM, MAX, MIN) के लिए काम करती है जो हमेशा एक पंक्ति लौटाती हैं। गैर-एग्रीगेट क्वेरी के लिए UNION या एप्लिकेशन-लेवल हैंडलिंग उपयोग करें।

  1. - MySQL में चेतावनियों को कैसे दबाएं

    SQL_NOTES सेट करके चेतावनियां दबाना MySQL में SET sql_notes = 0 सेट करके चेतावनी संदेशों को दबाया जा सकता है। डिफ़ॉल्ट रूप से sql_nototes = 1 होता है। चेतावनियां सक्षम (डिफ़ॉल्ट) SET sql_notes = 1; Query OK, 0 rows affected (0.00 sec) मौजूद नहीं टेबल ड्रॉप करना (चेतावनी उत्पन्न होगी) DROP TABLE

  1. - MySQL में COALESCE() से खाली पंक्ति के लिए डिफ़ॉल्ट मान सेट करें

    COALESCE() फ़ंक्शन का उपयोग करके NULL मानों को क्वेरी परिणाम में डिफ़ॉल्ट मान से बदल सकते हैं। यह टेबल डेटा नहीं बदलता, केवल आउटपुट प्रभावित करता है। टेबल बनाएं mysql> CREATE TABLE DemoTable1863 (FirstName VARCHAR(20)); डेटा डालें mysql> INSERT INTO DemoTable1863 VALUES(Chris); mysql> INS

  1. - MySQL में स्लो क्वेरी लॉगिंग कैसे सेट करें

    यह गाइड बताएगी कि MySQL में स्लो क्वेरी लॉगिंग कैसे सेट करें ताकि आप पता लगा सकें कि कौन सी क्वेरीज़ धीमेपन का कारण बन रही हैं। यदि आप प्रोडक्शन MySQL सर्वर चलाते या प्रशासित करते हैं, तो यह काफी संभावना है कि यह कभी-कभी थोड़ा धीमा चलता है, और यह पता लगाना कि क्यों, एक बहुत समय लेने वाला प्रयास हो स