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

MySQL-এ দুটি কলাম থেকে নন-NULL মান সিলেক্ট করা (IFNULL, COALESCE, CASE, IF)


MySQL-এ দুটি কলাম থেকে প্রথম নন-NULL মান বের করার ৪টি পদ্ধতি

যদি দুটি কলাম থাকে এবং আপনি চান যেন যেটিতে মান আছে (NULL নয়) সেটিই ফেরত দেয়, তবে নিচের ৪টি পদ্ধতি ব্যবহার করা যায়।

পদ্ধতি ১: IFNULL()

SELECT IFNULL(col1, col2) AS NonNullValue FROM yourTableName;

পদ্ধতি ২: COALESCE()

SELECT COALESCE(col1, col2) AS NonNullValue FROM yourTableName;

COALESCE একাধিক কলাম নিতে পারে: COALESCE(col1, col2, col3, 'default')।

পদ্ধতি ৩: CASE WHEN

SELECT CASE WHEN col1 IS NOT NULL THEN col1 ELSE col2 END AS NonNullValue FROM yourTableName;

পদ্ধতি ৪: IF()

SELECT IF(col1 IS NULL, col2, col1) AS NonNullValue FROM yourTableName;

উদাহরণ

টেবিল তৈরি

mysql> CREATE TABLE SelectNotNullColumnsDemo (
    -> Id INT NOT NULL AUTO_INCREMENT,
    -> Name VARCHAR(20),
    -> Age INT,
    -> PRIMARY KEY(Id)
    -> );

ডেটা ইনসার্ট (একটা Name=NULL, আরেকটা Age=NULL)

mysql> INSERT INTO SelectNotNullColumnsDemo(Name, Age) VALUES('John', NULL), (NULL, 23);

সকল রেকর্ড

mysql> SELECT * FROM SelectNotNullColumnsDemo;
+----+------+------+
| Id | Name | Age  |
+----+------+------+
| 1  | John | NULL |
| 2  | NULL | 23   |
+----+------+------+

৪টি পদ্ধতির ফলাফল (সব একই)

mysql> SELECT IFNULL(Name, Age) AS NonNullValue FROM SelectNotNullColumnsDemo;
mysql> SELECT COALESCE(Name, Age) AS NonNullValue FROM SelectNotNullColumnsDemo;
mysql> SELECT CASE WHEN Name IS NOT NULL THEN Name ELSE Age END AS NonNullValue FROM SelectNotNullColumnsDemo;
mysql> SELECT IF(Name IS NULL, Age, Name) AS NonNullValue FROM SelectNotNullColumnsDemo;
+--------------+
| NonNullValue |
+--------------+
| John         |
| 23           |
+--------------+

সুপারিশ: COALESCE সবচেয়ে পঠনীয় এবং একাধিক ফলব্যাক সাপোর্ট করে। IFNULL শুধু ২ আর্গুমেন্ট নেয়। CASE জটিল লজিকের জন্য। IF MySQL-স্পেসিফিক।

  1. MySQL에서 ORDER BY RAND()와 LIMIT으로 랜덤 2개 행 선택하기

  2. MySQL-এ ALTER TABLE MODIFY দিয়ে বিদ্যমান কলামে NOT NULL অ্যাট্রিবিউট সেট করা

  3. MySQL-এ দুটি কলামের মোট মান গণনা করা (NULL বাদ দিয়ে)

  4. MySQL-এ ভ্যালু ০ হলে অন্য কলাম থেকে ডেটা সিলেক্ট করা