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

MySQL में COALESCE() का उपयोग करके एक फ़ील्ड चुनें और यदि NULL हो तो दूसरा चुनें

MySQL COALESCE() के साथ पहला गैर-NULL मान चुनना

COALESCE() फ़ंक्शन अपने तर्कों में से पहला गैर-NULL मान लौटाता है। यह वैकल्पिक कॉलम के लिए फ़ॉलबैक मान प्रदान करने के लिए आदर्श है।

उदाहरण: नाम या आयु में से पहला गैर-NULL चुनना

mysql> CREATE TABLE DemoTable1470 (
    -> FirstName VARCHAR(20),
    -> Age INT
    -> );
Query OK, 0 rows affected (0.57 sec)

mysql> INSERT INTO DemoTable1470 VALUES ('Robert', 23), ('Bob', NULL), (NULL, 25);
Query OK, 3 rows affected (0.09 sec)

mysql> SELECT * FROM DemoTable1470;
+-----------+------+
| FirstName | Age  |
+-----------+------+
| Robert    |   23 |
| Bob       | NULL |
| NULL      |   25 |
+-----------+------+
3 rows in set (0.00 sec)

COALESCE() क्वेरी

mysql> SELECT COALESCE(FirstName, Age) AS FirstNameOrAgeValue
    -> FROM DemoTable1470;

परिणाम

+---------------------+
| FirstNameOrAgeValue |
+---------------------+
| Robert              |
| Bob                 |
| 25                  |
+---------------------+
3 rows in set (0.00 sec)

पंक्ति-दर-पंक्ति व्याख्या

पंक्तिFirstNameAgeCOALESCE(FirstName, Age)कारण
1Robert23RobertFirstName गैर-NULL
2BobNULLBobFirstName गैर-NULL
3NULL2525FirstName NULL, Age उपयोग किया गया

COALESCE() बनाम IFNULL()

व्यावहारिक उपयोग के मामले

-- संपर्क जानकारी फ़ॉलबैक
SELECT COALESCE(mobile, landline, email, 'No contact') AS contact
FROM customers;

-- मूल्य निर्धारण फ़ॉलबैक
SELECT COALESCE(sale_price, discount_price, regular_price, 0) AS final_price
FROM products;

-- प्रदर्शन नाम
SELECT COALESCE(nickname, first_name, last_name, 'User') AS display_name
FROM users;

प्रकार संगतता नोट

चेतावनी: COALESCE सभी तर्कों के लिए एक सामान्य प्रकार खोजने का प्रयास करता है। मिश्रित प्रकार (स्ट्रिंग + संख्या) अप्रत्याशित परिणाम दे सकते हैं। स्पष्ट कास्टिंग का उपयोग करें:
SELECT COALESCE(FirstName, CAST(Age AS CHAR)) FROM DemoTable1470;
  1. - MySQL में INSERT INTO SELECT UNION ALL से एक क्वेरी में दो टेबल में चयन और सम्मिलन

    MySQL में INSERT INTO ... SELECT ... UNION ALL ... SELECT का उपयोग करके एक ही क्वेरी में एक टेबल से डेटा चुनकर दूसरी टेबल में एकाधिक पंक्तियां डाल सकते हैं। उदाहरण 1. लक्ष्य टेबल बनाएं ); 2. स्रोत टेबल बनाएं INSERT INTO DemoTable2 VALUES(Chris); 3. एक क्वेरी में चयन और सम्मिलन SELECT Name, 98

  1. - MySQL में INSERT ... SELECT क्वेरी का उपयोग कैसे करें?

    MySQL में INSERT ... SELECT स्टेटमेंट एक ही क्वेरी में एक तालिका से दूसरी तालिका में डेटा कॉपी करने या मानों की गणना करके डालने की अनुमति देता है। सिंटैक्स INSERT INTO target_table (col1, col2, col3, ...) SELECT col1, col2, col3, ... FROM source_table WHERE condition; उदाहरण: मानों को सीधे चुनकर ड

  1. - MySQL में ग्रुपिंग के साथ सेलेक्ट और सम?

    सम करने के लिए एग्रीगेट फंक्शन SUM() का उपयोग करें। इसके साथ MySQL GROUP BY का उपयोग करके ग्रुप करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> ProductName varchar(20), -> ProductQuantity int, -> ProductPrice int -> ); Query OK, 0 rows affected (0.63 sec) इ

© कॉपीराइट https://in.wsxdn.com सर्वाधिकार सुरक्षित
पहलूCOALESCE(val1, val2, ...)IFNULL(val1, val2)
तर्क2+ (एकाधिक फ़ॉलबैक)ठीक 2
मानकANSI SQLMySQL-विशिष्ट
प्रकार संचालनसभी तर्कों का सामान्य प्रकारदूसरे तर्क का प्रकार