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

MySQL स्टेटमेंट में IF ELSE (CASE) कैसे उपयोग करें?

MySQL में IF() फंक्शन और CASE एक्सप्रेशन से सशर्त तर्क लागू कर सकते हैं।

तरीका 1: CASE एक्सप्रेशन (मानक SQL, अधिक लचीला)

SELECT id, FirstName,
    CASE 
        WHEN id = 2 AND FirstName = 'Carol' THEN 'Welcome Carol'
        ELSE 'You are not Carol with id 2'
    END AS Message
FROM IfelseDemo;

आउटपुट:

+------+-----------+-----------------------------+
| id   | FirstName | Message                     |
+------+-----------+-----------------------------+
| 1    | John      | You are not Carol with id 2 |
| 2    | Carol     | Welcome Carol               |
| 3    | John      | You are not Carol with id 2 |
| 4    | Carol     | You are not Carol with id 2 |
| 5    | John      | You are not Carol with id 2 |
+------+-----------+-----------------------------+

तरीका 2: IF() फंक्शन (सरल शर्तों के लिए)

SELECT id, FirstName,
    IF(id = 2 AND FirstName = 'Carol', 'Welcome Carol', 'Not Carol') AS Message
FROM IfelseDemo;

तरीका 3: CASE का सरल रूप (मान तुलना)

SELECT id,
    CASE id
        WHEN 1 THEN 'First'
        WHEN 2 THEN 'Second'
        ELSE 'Other'
    END AS position
FROM IfelseDemo;

UPDATE/DELETE में उपयोग

-- सशर्त अपडेट
UPDATE products
SET price = CASE 
    WHEN category = 'premium' THEN price * 1.1
    WHEN category = 'sale' THEN price * 0.8
    ELSE price
END;

-- सशर्त डिलीट
DELETE FROM logs
WHERE created_at < CASE 
    WHEN @@hostname = 'prod-server' THEN DATE_SUB(NOW(), INTERVAL 1 YEAR)
    ELSE DATE_SUB(NOW(), INTERVAL 30 DAY)
END;

IF vs CASE

विशेषताIF()CASE
शर्तेंएक शर्तएकाधिक शर्तें
पठनीयतासरल के लिए अच्छीजटिल तर्क के लिए बेहतर
मानक SQLनहीं (MySQL-विशिष्ट)हाँ (ANSI SQL)
NULL हैंडलिंगIFNULL() अलगWHEN IS NULL संभव

नोट

MySQL में IF ... THEN ... ELSE ... END IF ब्लॉक केवल स्टोर्ड प्रोग्राम (प्रोसीजर, फंक्शन, ट्रिगर) में काम करता है, SELECT क्वेरी में नहीं।

  1. - MySQL में SELECT स्टेटमेंट के अंदर CASE स्टेटमेंट का उपयोग कैसे करें?

    MySQL में CASE WHEN का उपयोग करके सशर्त तर्क MySQL में CASE WHEN अभिव्यक्ति आपको SQL क्वेरीज़ के अंदर सशर्त तर्क (if-else तर्क) लागू करने की अनुमति देती है। यह SELECT, WHERE, ORDER BY, GROUP BY आदि में उपयोग किया जा सकता है। टेबल बनाना ); Query OK, 0 rows affected (0.63 sec) डेटा डालना INSERT IN

  1. - MySQL एंडिंग स्टेटमेंट कैसे बदलें?

    MySQL एंडिंग स्टेटमेंट बदलने के लिए आप DELIMITER का उपयोग कर सकते हैं: DELIMITER anySymbol ऊपर, anySymbol वह प्रतीक है जिसे आप सेट कर सकते हैं। डिफ़ॉल्ट है DELIMITER ; आइए पहले एक टेबल बनाते हैं: mysql> DELIMITER // mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -&

  1. - PHP if else elseif - सशर्त निष्पादन

    परिचय एक या अधिक स्टेटमेंट्स का सशर्त निष्पादन किसी भी प्रोग्रामिंग भाषा की सबसे महत्वपूर्ण विशेषता है। PHP अपने if, else और elseif स्टेटमेंट्स के साथ यह क्षमता प्रदान करता है। if स्टेटमेंट का प्राथमिक उपयोग इस प्रकार है: सिंटैक्स if (expression) statement; if कीवर्ड के सामने अभिव्यक्ति एक त