এক কলামে নির্দিষ্ট স্ট্রিং আছে কিনা চেক করে অন্য কলামে 'Yes'/'No' রিটার্ন করতে IF(condition, true_val, false_val) ফাংশন ব্যবহার করা হয়।
টেবিল তৈরি ও ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable (FirstName VARCHAR(100), LastName VARCHAR(100)); Query OK, 0 rows affected (1.28 sec)
mysql> INSERT INTO DemoTable VALUES ('Chris', 'Brown');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable VALUES ('David', 'Miller');
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable VALUES ('Adam', 'Smith');
Query OK, 1 row affected (0.11 sec)
রেকর্ড দেখানো
mysql> SELECT * FROM DemoTable;
আউটপুট:
+-----------+----------+ | FirstName | LastName | +-----------+----------+ | Chris | Brown | | David | Miller | | Adam | Smith | +-----------+----------+ 3 rows in set (0.00 sec)
LastName 'Miller' কিনা চেক করে Yes/No
mysql> SELECT IF(LastName = 'Miller', 'Yes', 'No') AS LastName, FirstName FROM DemoTable;
ফলাফল:
+----------+-----------+ | LastName | FirstName | +----------+-----------+ | No | Chris | | Yes | David | | No | Adam | +----------+-----------+ 3 rows in set (0.00 sec)
ব্যাখ্যা
IF(LastName = 'Miller', 'Yes', 'No')- শর্ত সত্য হলে 'Yes', মিথ্যা হলে 'No'।- আউটপুট কলামের নাম
AS LastNameদিয়ে পরিবর্তন করা হয়েছে। - মূল LastName কলাম এখন আউটপুটে নেই (অ্যালায়াস দ্বারা আচ্ছাদিত)।
বিকল্প: CASE WHEN
SELECT CASE WHEN LastName = 'Miller' THEN 'Yes' ELSE 'No' END AS HasMiller, FirstName FROM DemoTable;
CASE একাধিক শর্ত হ্যান্ডেল করতে পারে, IF শুধু একটি শর্ত।
বুলিয়ান রিটার্ন (১/০)
স্ট্রিং বদলে ১/০ চাইলে: SELECT (LastName = 'Miller') AS IsMiller, FirstName FROM DemoTable;