কম্পিউটার টিউটোরিয়াল

MySQL-এ SELECT-এ IF() ফাংশন ব্যবহার করে শর্তভিত্তি আউটপুট দেওয়া

SELECT কোয়েরির ভেতরে সরাসরি শর্ত যাচাই করে ভিন্ন মান দেখাতে MySQL-এ IF() ফাংশন ব্যবহার করা হয়। এটি CASE WHEN-এর সিম্পল ভার্সন।

টেবিল ও ডেটা তৈরি

mysql> CREATE TABLE DemoTable1966 (
    UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    UserName VARCHAR(20),
    PhotoLiked INT
);

mysql> INSERT INTO DemoTable1966 (UserName, PhotoLiked) VALUES
    ('Chris', 57), ('David', 100), ('Mike', 68), ('Sam', 78);

ডেটা যাচাই

mysql> SELECT * FROM DemoTable1966;
+--------+----------+------------+
| UserId | UserName | PhotoLiked |
+--------+----------+------------+
|      1 | Chris    |         57 |
|      2 | David    |        100 |
|      3 | Mike     |         68 |
|      4 | Sam      |         78 |
+--------+----------+------------+

IF() ব্যবহার: ৭৫-এর বেশি লাইক হলে নাম, নাহলে 'Likes are less'

mysql> SELECT IF(PhotoLiked > 75, UserName, 'Likes are less') AS Result
    FROM DemoTable1966;

আউটপুট:

+------------------------------------------------+
| Result                                         |
+------------------------------------------------+
| Likes are less                                 |
| David                                          |
| Likes are less                                 |
| Sam                                            |
+------------------------------------------------+

IF() সিনট্যাক্স

IF(condition, value_if_true, value_if_false)

IF() vs CASE WHEN vs IFNULL()

ফাংশনউপযোগিতাউদাহরণ
IF(cond, t, f)সিম্পল টু-ওয়ে ব্রাঞ্চIF(score > 50, 'Pass', 'Fail')
CASE WHEN ... THEN ... ELSE ... ENDমাল্টিপল শর্ত, কমপ্লেক্স লজিকCASE WHEN s>90 THEN 'A' WHEN s>80 THEN 'B' ELSE 'C' END
IFNULL(expr1, expr2)NULL ফলব্যাক (শুধু ২ আর্গুমেন্ট)IFNULL(phone, 'N/A')
COALESCE(v1, v2, ...)প্রথম নন-নাল (ANSI স্ট্যান্ডার্ড)COALESCE(mobile, email, 'N/A')

নেস্টেড IF (বর্জন করুন)

IF(cond1, val1, IF(cond2, val2, val3)) -- পঠনীয়তা খারাপ

বদলে CASE WHEN ব্যবহার করুন।

WHERE ক্লজে IF ব্যবহার (ফিল্টারিং)

SELECT * FROM DemoTable1966
WHERE IF(PhotoLiked > 75, 1, 0) = 1; -- শুধু ৭৫+ লাইক والے
  1. MySQL-এ COUNT() এর ভিতরে CASE শর্ত ব্যবহার করে গণনা করা

  2. MySQL-এ মাস অনুযায়ী রেকর্ড সিলেক্ট করা (MONTH() ফাংশন)

  3. MySQL-এ UPDATE-এ সাবকুয়েরি (SELECT) ব্যবহার করা

  4. MySQL-এ CONCAT_WS ব্যবহার করে শর্তসাপেক্ষ রো সিলেক্ট করা