MySQL CASE एक स्विच स्टेटमेंट की तरह काम करता है। CASE का सिंटैक्स इस प्रकार है:
केस 1 - तुलना स्टेटमेंट
CASE WHEN anyCompareStatement THEN value1 WHEN anyCompareStatement THEN value2 ... N ELSE anyValue END AS anyVariableName;
केस 2 - शर्तें
दूसरा सिंटैक्स तब उपयोग किया जा सकता है जब आप केवल एक कॉलम चुन रहे हों। सिंटैक्स इस प्रकार है:
CASE yourColumnName WHEN condition1 THEN result1 WHEN condition1 THEN result2 ... N ELSE anyValue END;
उपरोक्त अवधारणा को समझने के लिए, SELECT स्टेटमेंट का उपयोग करते हैं।
केस 1
क्वेरी इस प्रकार है:
mysql> SELECT
-> CASE WHEN 45 < 55 THEN '55 is greater than 45'
-> WHEN 10 != 11 THEN '10 is not equal to 11'
-> ELSE 'Default case'
-> END AS Result;
आउटपुट
+-----------------------+ | Result | +-----------------------+ | 55 is greater than 45 | +-----------------------+ 1 row in set (0.00 sec)
केस 2
दूसरे सिंटैक्स को समझने के लिए एक टेबल बनाते हैं।
टेबल बनाने का क्वेरी:
mysql> CREATE TABLE CaseDemo (
-> Id INT,
-> Name VARCHAR(100)
-> ); Query OK, 0 rows affected (0.93 sec)
INSERT कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:
mysql> INSERT INTO CaseDemo VALUES(1,'John'); Query OK, 1 row affected (0.43 sec) mysql> INSERT INTO CaseDemo VALUES(2,'Sam'); Query OK, 1 row affected (0.16 sec)
SELECT स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:
mysql> SELECT * FROM CaseDemo;
आउटपुट
+------+------+ | Id | Name | +------+------+ | 1 | John | | 2 | Sam | +------+------+ 2 rows in set (0.00 sec)
यहाँ CASE का दूसरा क्वेरी है जिसका उपयोग केवल एक मान के साथ काम करने के लिए किया जा सकता है। क्वेरी इस प्रकार है:
mysql> SELECT CASE name
-> WHEN 'John' THEN 'His name is John'
-> WHEN 'Sam' THEN 'His name is Sam'
-> ELSE -1
-> END AS Result
-> FROM CaseDemo;
आउटपुट
+------------------+ | Result | +------------------+ | His name is John | | His name is Sam | +------------------+ 2 rows in set (0.00 sec)