MySQL-এ একটি রোর একাধিক কলামের মান যোগ করতে دوটি পদ্ধতি আছে—NULL আছে কিনা তার ওপর নির্ভর করে।
কেস ১: NULL মান নেই
SELECT yourColumnName1 + yourColumnName2 + yourColumnName3 + ... AS anyVariableName FROM yourTableName;
কেস ২: NULL মান থাকতে পারে
IFNULL() ব্যবহার করে NULL কে ০ হিসেবে গণনা করুন:
SELECT IFNULL(yourColumnName1,0) + IFNULL(yourColumnName2,0) + IFNULL(yourColumnName3,0) + ... AS anyVariableName FROM yourTableName;
উদাহরণ
টেবিল তৈরি করি:
mysql> create table SumValueOfSingleRow
-> (
-> Id int NOT NULL AUTO_INCREMENT,
-> FirstValue int,
-> SecondValue int,
-> ThirdValue int,
-> PRIMARY KEY(Id)
-> ); Query OK, 0 rows affected (0.70 sec)
রেকর্ড যোগ করি (NULL সহ):
mysql> insert into SumValueOfSingleRow(FirstValue,SecondValue,ThirdValue) values(1,0,1); mysql> insert into SumValueOfSingleRow(FirstValue,SecondValue,ThirdValue) values(1,NULL,0); mysql> insert into SumValueOfSingleRow(FirstValue,SecondValue,ThirdValue) values(NULL,NULL,NULL);
সকল রেকর্ড
mysql> select *from SumValueOfSingleRow;
আউটপুট
+----+------------+-------------+------------+ | Id | FirstValue | SecondValue | ThirdValue | +----+------------+-------------+------------+ | 1 | 1 | 0 | 1 | | 2 | 1 | NULL | 0 | | 3 | NULL | NULL | NULL | +----+------------+-------------+------------+ 3 rows in set (0.00 sec)
কেস ১ প্রয়োগ (ভুল ফলাফল)
mysql> select FirstValue+SecondValue+ThirdValue as SingleRowSum from SumValueOfSingleRow;
আউটপুট
+--------------+ | SingleRowSum | +--------------+ | 2 | | NULL | | NULL | +--------------+ 3 rows in set (0.06 sec)
সমস্যা: যেকোনো কলামে NULL থাকলে পুরো যোগফল NULL হয়ে যায়।
কেস ২ প্রয়োগ (সঠিক ফলাফল)
mysql> select ifnull(FirstValue,0)+ ifnull(SecondValue,0)+ ifnull(ThirdValue,0) as SingleRowSum from SumValueOfSingleRow;
ফলাফল
+--------------+ | SingleRowSum | +--------------+ | 2 | | 1 | | 0 | +--------------+ 3 rows in set (0.06 sec)