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

MySQL में शर्त पूरी होने पर विशेष वर्ण कैसे सेट करें?

MySQL में IF() फ़ंक्शन का उपयोग करके शर्तीय विशेष वर्ण/मान सेट करना

MySQL में IF(condition, true_value, false_value) फ़ंक्शन का उपयोग करके शर्त के आधार पर अलग-अलग मान (विशेष वर्ण, स्ट्रिंग, संख्या) प्रदर्शित या सेट कर सकते हैं।

उदाहरण के साथ पूर्ण कार्यान्वयन

टेबल बनाना

mysql> CREATE TABLE DemoTable637 (
    ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientName VARCHAR(100),
    ClientAge INT
);

रिकॉर्ड डालना

mysql> INSERT INTO DemoTable637(ClientName, ClientAge) VALUES
('Chris', 23), ('Robert', 24), ('David', 57), ('Carol', 60);

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

mysql> SELECT * FROM DemoTable637;

आउटपुट:

+----------+------------+-----------+
| ClientId | ClientName | ClientAge |
+----------+------------+-----------+
| 1        | Chris      | 23        |
| 2        | Robert     | 24        |
| 3        | David      | 57        |
| 4        | Carol      | 60        |
+----------+------------+-----------+
4 rows in set (0.00 sec)

शर्त: नाम NULL नहीं है AND उम्र > 50 → नाम दिखाएं, अन्यथा डैश

mysql> SELECT IF(ClientName IS NOT NULL AND ClientAge > 50, ClientName, '-------------') 
FROM DemoTable637;

आउटपुट:

+--------------------------------------------------------------------------+
| IF(ClientName IS NOT NULL AND ClientAge > 50, ClientName, '-------------') |
+--------------------------------------------------------------------------+
| -------------                                                            |
| -------------                                                            |
| David                                                                    |
| Carol                                                                    |
+--------------------------------------------------------------------------+
4 rows in set (0.00 sec)

व्याख्या:

  • Chris (23): उम्र > 50 असत्य → '-------------'
  • Robert (24): उम्र > 50 असत्य → '-------------'
  • David (57): नाम नॉट NULL और उम्र > 50 सत्य → 'David'
  • Carol (60): नाम नॉट NULL और उम्र > 50 सत्य → 'Carol'

IF() वाक्यविन्यास

IF(condition, value_if_true, value_if_false)

नेस्टेड IF उदाहरण

SELECT ClientName,
    IF(ClientAge < 18, 'Minor',
        IF(ClientAge < 60, 'Adult', 'Senior')) AS AgeGroup
FROM DemoTable637;

आउटपुट: Chris→Adult, Robert→Adult, David→Senior, Carol→Senior

CASE विकल्प (अधिक पठनीय एकाधिक शर्तों के लिए)

SELECT ClientName,
    CASE
        WHEN ClientName IS NOT NULL AND ClientAge > 50 THEN ClientName
        WHEN ClientAge > 30 THEN 'Experienced'
        ELSE 'Junior'
    END AS Status
FROM DemoTable637;

UPDATE में IF() उपयोग करना

UPDATE DemoTable637 
SET ClientName = IF(ClientAge > 50, CONCAT('Senior: ', ClientName), ClientName);

NULL सुरक्षा

-- IFNULL/COALESCE के साथ
SELECT IF(IFNULL(ClientName, '') = '', 'Anonymous', ClientName) FROM DemoTable637;

-- या
SELECT COALESCE(NULLIF(ClientName, ''), 'Anonymous') FROM DemoTable637;

बूलियन संदर्भ में IF()

MySQL में TRUE = 1, FALSE = 0:

SELECT ClientAge > 50 AS IsSenior FROM DemoTable637;  -- 1 या 0 लौटाता है
SELECT IF(ClientAge > 50, 'Yes', 'No') AS IsSenior FROM DemoTable637;  -- स्ट्रिंग लौटाता है
  1. - MySQL में IF स्टेटमेंट से ENUM मानों के लिए कस्टम संदेश सेट करें

    IF() फ़ंक्शन से ENUM Y/N को पठनीय संदेश में बदलें ENUM कॉलम के Y/N मानों को Active Member/Not Active Member जैसे कस्टम संदेश में बदलने के लिए IF() का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1992 ( ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY, ClientName varchar(20),

  1. - MySQL में स्ट्रिंग कॉलम (स्ट्रिंग, संख्या, विशेष वर्ण) से विशिष्ट रिकॉर्ड प्राप्त करें

    CAST और SUBSTRING से संख्यात्मक भाग अनुसार क्रमबद्ध करें John_12, Chris_101 जैसे स्ट्रिंग कॉलम से संख्यात्मक भाग निकालकर क्रमबद्ध करें और विशिष्ट रिकॉर्ड प्राप्त करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable2006 ( UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, UserCode varchar(20

  1. - MySQL में कॉलम मानों के लिए ENUM कैसे सेट करें?

    ENUM कॉलम के साथ टेबल बनाना टेबल बनाते समय ENUM प्रकार निर्दिष्ट करें: ); रिकॉर्ड डालना INSERT INTO DemoTable2019 VALUES (45, Second); सभी रिकॉर्ड देखना SELECT * FROM DemoTable2019; +--------------+---------------+ | StudentMarks | StudentStatus | +--------------+---------------+ | 96