MySQL CASE একটি সুইচ স্টেটমেন্টের মতো কাজ করে। CASE-এর সিনট্যাক্স:
Case 1 − কমপেয়ার স্টেটমেন্ট
CASE WHEN anyCompareStatement THEN value1
WHEN anyCompareStatement THEN value2
...
N ELSE anyValue END AS anyVariableName;
Case 2 − শর্তাবলী
দ্বিতীয় সিনট্যাক্সটি তখন ব্যবহার করা হয় যখন আপনি শুধু একটি কলাম সিলেক্ট করছেন। সিনট্যাক্স:
CASE yourColumnName
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
N ELSE anyValue
END;
কনসেপ্টটি বুঝতে সিলেক্ট স্টেটমেন্ট ব্যবহার করি।
Case 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)
Case 2
দ্বিতীয় সিনট্যাক্স বুঝতে একটি টেবিল তৈরি করি।
mysql> CREATE TABLE CaseDemo (
-> Id INT,
-> Name VARCHAR(100)
-> ); Query OK, 0 rows affected (0.93 sec)
ইনসার্ট কমান্ড দিয়ে কিছু রেকর্ড যোগ করি:
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)
সিলেক্ট স্টেটমেন্ট দিয়ে সব রেকর্ড দেখি:
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)