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

MySQL में CASE WHEN के विकल्प: IF() फ़ंक्शन का उपयोग

MySQL में सरल सशर्त तर्क के लिए CASE WHEN के बजाय IF() फ़ंक्शन अधिक संक्षिप्त और पठनीय हो सकता है।

सिंटैक्स तुलना

CASE WHEN

SELECT CASE 
    WHEN PlayerScore = 0 THEN ''
    ELSE PlayerScore
END FROM DemoTable;

IF() - सरल मामलों के लिए

SELECT IF(PlayerScore = 0, '', PlayerScore) FROM DemoTable;

उदाहरण

1. टेबल बनाएं

mysql> CREATE TABLE DemoTable1593 (PlayerScore INT);

2. डेटा डालें

mysql> INSERT INTO DemoTable1593 VALUES(78), (0), (89), (0);

3. IF() क्वेरी

mysql> SELECT IF(PlayerScore = 0, '', PlayerScore) FROM DemoTable1593;

4. परिणाम

+----------------------------------+
| if(PlayerScore=0,'',PlayerScore) |
+----------------------------------+
| 78                               |
|                                  |  -- खाली स्ट्रिंग
| 89                               |
|                                  |  -- खाली स्ट्रिंग
+----------------------------------+

IF() बनाम CASE WHEN

स्थितिअनुशंसितकारण
एक शर्त, दो परिणामIF()सरल, संक्षिप्त
एकाधिक शर्तेंCASE WHENपठनीय, विस्तार योग्य
नेस्टेड शर्तेंCASE WHENस्पष्ट संरचना
मानक SQL अनुरूपताCASE WHENANSI SQL मानक
NULL हैंडलिंगCASE (IS NULL)IFNULL/COALESCE जरूरी

IFNULL/COALESCE विकल्प

-- 0 को NULL मानें, फिर COALESCE
SELECT COALESCE(NULLIF(PlayerScore, 0), '') FROM DemoTable1593;

-- या सीधे
SELECT CASE WHEN PlayerScore = 0 THEN '' ELSE PlayerScore END FROM DemoTable1593;

उपयोग के मामले

  • IF(): फ्लैग जांच, सरल हां/नहीं, डिफ़ॉल्ट मान
  • CASE WHEN: बहु-श्रेणी वर्गीकरण, जटिल व्यापार तर्क

प्रदर्शन

दोनों समान प्रदर्शन। ऑप्टिमाइज़र दोनों को समान रूप से संभालता है। पठनीयता के आधार पर चुनें।

  1. - MySQL में CASE WHEN और INFORMATION_SCHEMA से टेबल अस्तित्व जांचें

    MySQL में INFORMATION_SCHEMA.TABLES और CASE WHEN का उपयोग करके बूलियन परिणाम (हां/नहीं) के रूप में टेबल अस्तित्व जांच सकते हैं। सिंटैक्स SELECT MAX(CASE WHEN TABLE_NAME = टेबल_नाम THEN Yes (TRUE) ELSE No (FALSE) END) AS isTableExists FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DA

  1. - MySQL में CASE WHEN के साथ काउंट कैसे करें?

    MySQL में शर्ती गिनती (कंडीशनल काउंट) करने के लिए SUM(CASE WHEN ... THEN 1 ELSE 0 END) पैटर्न का उपयोग करें। यह एक ही क्वेरी में एकाधिक शर्तों की गिनती करने का कुशल तरीका है। उदाहरण: विशिष्ट मार्क्स की गिनती प्रति छात्र डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1910 ( FirstName VARCHAR

  1. - MySQL में CASE WHEN क्लॉज में एक्सप्रेशन सही काम नहीं कर रहा?

    सही CASE WHEN सिंटैक्स select (case when (first_name = John) then Carol when (last_name = Smith) then Doe end) RESULT from demo58; उदाहरण डेटा insert into demo58(first_name,last_name) values(John,Doe), (David,Smith), (John,Brown), (David,Miller); परिणाम +--------+ | RESULT | +-----