MySQL-এ CASE WHEN এক্সপ্রেশন সঠিক সিনট্যাক্সে লিখতে হয় যাতে এটি সঠিকভাবে কাজ করে।
উদাহরণ
টেবিল তৈরি:
CREATE TABLE demo58 (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(20),
last_name VARCHAR(20)
);
INSERT INTO demo58(first_name, last_name) VALUES
('John', 'Doe'), ('David', 'Smith'), ('John', 'Brown'), ('David', 'Miller');
টেবিলের ডেটা:
+----+------------+-----------+ | id | first_name | last_name | +----+------------+-----------+ | 1 | John | Doe | | 2 | David | Smith | | 3 | John | Brown | | 4 | David | Miller | +----+------------+-----------+
কোয়েরি
first_name 'John' হলে 'Carol', last_name 'Smith' হলে 'Doe', অন্যথায় NULL:
SELECT
(CASE
WHEN (first_name = 'John') THEN 'Carol'
WHEN (last_name = 'Smith') THEN 'Doe'
END) AS RESULT
FROM demo58;
আউটপুট
+--------+ | RESULT | +--------+ | Carol | | Doe | | Carol | | NULL | +--------+
ব্যাখ্যা:
- ১ম রো: first_name='John' -> 'Carol' (প্রথম WHEN ম্যাচ, বাকি চেক নয়)।
- ২য় রো: first_name='David' (নয়), last_name='Smith' -> 'Doe'।
- ৩য় রো: first_name='John' -> 'Carol'।
- ৪র্থ রো: first_name='David', last_name='Miller' -> কোনো WHEN ম্যাচ নয় -> NULL (ELSE নেই)।
সিনট্যাক্স টিপস:
CASE WHEN condition THEN result [WHEN ...] [ELSE result] END- সার্চড CASE (এখানে ব্যবহার করা হয়েছে)।CASE expr WHEN value THEN result ... END- সিম্পল CASE (এক্সপ্রেশন তুলনা)।- প্যarethেসিস
(CASE ... END)অপশনাল, কিন্তু রিডেবিলিটির জন্য ভালো। - ELSE না দিলে ডিফল্ট NULL রিটার্ন করে।