MySQL-এ শর্তসাপেক্ষ লজিকের জন্য দুটি ভিন্ন IF রয়েছে: IF() ফাংশন (SELECT-এ ব্যবহার) এবং IF স্টেটমেন্ট (স্টোরড প্রসিজারে ব্যবহার)।
১. SELECT স্টেটমেন্টে IF() ফাংশন
mysql> SELECT IF(0=0, 'Hello MySQL', 'condition is wrong');
+------------------------------------------------------+
| if('test'='test','Hello MySQL','condition is wrong') |
+------------------------------------------------------+
| Hello MySQL |
+------------------------------------------------------+
mysql> SELECT IF(1=0, 'Hello MySQL', 'condition is wrong');
+--------------------------------------------+ | if(1=0,'Hello MySQL','condition is wrong') | +--------------------------------------------+ | condition is wrong | +--------------------------------------------+
২. স্টোরড প্রসিজারে IF স্টেটমেন্ট
mysql> DELIMITER //
mysql> CREATE PROCEDURE if_demo(value INT)
BEGIN
IF 1 = value THEN
SELECT "Hello MySQL";
ELSE
SELECT "Wrong Condition";
END IF;
END //
Query OK, 0 rows affected (0.20 sec)
mysql> DELIMITER ;
প্রসিজার কল করা
mysql> CALL if_demo(1);
+-------------+ | Hello MySQL | +-------------+ | Hello MySQL | +-------------+
mysql> CALL if_demo(0);
+-----------------+ | Wrong Condition | +-----------------+ | Wrong Condition | +-----------------+
মূল পার্থক্য: IF() এক্সপ্রেশন রিটার্ন করে (ফাংশন), আর IF ... THEN ... END IF কন্ট্রোল ফ্লো স্টেটমেন্ট (প্রসিজার/ফাংশন বডিতে ব্যবহার)।