CASE WHEN EXISTS (SELECT ...) THEN ... ELSE ... END প্যাটার্ন
MySQL-এ কোনো রেকর্ড টেবিলে আছে কিনা চেক করে শর্তসাপেক্ষ আউটপুট দেখাতে CASE WHEN EXISTS (subquery) THEN 'Present' ELSE 'Not Present' END প্যাটার্ন ব্যবহার করা হয়।
টেবিল ও ডেটা
mysql> CREATE TABLE DemoTable (UserId INT, UserName VARCHAR(100)); mysql> INSERT INTO DemoTable VALUES(100,'Chris'), (101,'Robert'), (102,'David'), (103,'Mike');
সব রেকর্ড
+--------+----------+ | UserId | UserName | +--------+----------+ | 100 | Chris | | 101 | Robert | | 102 | David | | 103 | Mike | +--------+----------+
CASE WHEN EXISTS কোয়েরি (UserId=102 চেক)
mysql> SELECT CASE WHEN EXISTS(SELECT * FROM DemoTable WHERE UserId = 102) THEN 'Present' ELSE 'Not Present' END AS Result;
+---------+ | Result | +---------+ | Present | +---------+
ব্যাখ্যা
EXISTS(SELECT * FROM DemoTable WHERE UserId = 102)— সাবকোয়েরি কমপক্ষে এক সারি রিটার্ন করলে TRUE।CASE WHEN ... THEN 'Present' ELSE 'Not Present' END— TRUE হলে 'Present', FALSE হলে 'Not Present'।EXISTSখুব দ্রুত কাজ করে (প্রথম ম্যাচ পাওয়ায় থামে, COUNT(*) দরকার নেই)।
বিকল্প: LEFT JOIN বা IN
SELECT CASE WHEN 102 IN (SELECT UserId FROM DemoTable) THEN 'Present' ELSE 'Not Present' END;