MySQL-এ শর্তসাপেক্ষভাবে কলাম মান পরিবর্তন বা ফিল্টার করতে CASE WHEN এক্সপ্রেশন ব্যবহার করা হয়।
উদাহরণ
টেবিল তৈরি:
CREATE TABLE demo47 (
first_name VARCHAR(20),
last_name VARCHAR(20)
);
INSERT INTO demo47 VALUES ('John', 'Smith'), ('David', 'Miller'), ('John', 'Doe'), ('Chris', 'Brown');
টেবিলের ডেটা:
+------------+-----------+ | first_name | last_name | +------------+-----------+ | John | Smith | | David | Miller | | John | Doe | | Chris | Brown | +------------+-----------+
কোয়েরি
যে রোগুলোতে 'John' আছে (first_name বা last_name-এ), সেগুলোতে first_name 'John' হলে last_name দেখাও, অন্যথায় first_name দেখাও:
SELECT CASE
WHEN first_name = 'John' THEN last_name
ELSE first_name
END AS Result
FROM demo47
WHERE 'John' IN (first_name, last_name);
আউটপুট
+--------+ | Result | +--------+ | Smith | | Doe | +--------+
ব্যাখ্যা: WHERE 'John' IN (first_name, last_name) শুধু 'John' ধারণকারী রোগুলো ফিল্টার করে। তারপর CASE WHEN দিয়ে শর্ত অনুযায়ী আউটপুট বেছে নেওয়া হয়েছে। ১ম রো: first_name='John' -> last_name='Smith'। ৩য় রো: first_name='John' -> last_name='Doe'। ২য় ও ৪র্থ রোতে 'John' নেই, তাই ফিল্টার আউট হয়েছে।