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

টেবিল থেকে ডাইনামিক ডেটা ব্যবহার করে MySQL স্টোরড ফাংশন কীভাবে তৈরি করবেন?


MySQL স্টোরড ফাংশন টেবিল রেফারেন্স করতে পারে কিন্তু রেজাল্ট সেট ফেরত দেয়া স্টেটমেন্ট ব্যবহার করতে পারে না। তাই SELECT কোয়ারী যা রেজাল্ট সেট ফেরত দেয় সেটি ব্যবহার করা যায় না। কিন্তু SELECT INTO ব্যবহার করে এটা সমাধান করা যায়। উদাহরণ হিসেবে 'Avg_marks' ফাংশন তৈরি করা হলো যা 'Student_marks' টেবিলের ডাইনামিক ডেটা ব্যবহার করে গড় নম্বর হিসাব করবে:

mysql> Select * from Student_marks;
+-------+------+---------+---------+---------+
| Name  | Math | English | Science | History |
+-------+------+---------+---------+---------+
| Raman |   95 |      89 |      85 |      81 |
| Rahul |   90 |      87 |      86 |      81 |
+-------+------+---------+---------+---------+
2 rows in set (0.00 sec)
mysql> DELIMITER //
mysql> Create Function Avg_marks(S_name Varchar(50))
    -> RETURNS INT
    -> DETERMINISTIC
    -> BEGIN
    -> DECLARE M1,M2,M3,M4,avg INT;
    -> SELECT Math,English,Science,History INTO M1,M2,M3,M4 FROM Student_marks WHERE Name = S_name;
    -> SET avg = (M1+M2+M3+M4)/4;
    -> RETURN avg;
    -> END //
Query OK, 0 rows affected (0.01 sec)
mysql> DELIMITER ;
mysql> Select Avg_marks('Raman') AS 'Raman_Marks';
+-------------+
| Raman_Marks |
+-------------+
|          88 |
+-------------+
1 row in set (0.07 sec)
mysql> Select Avg_marks('Rahul') AS 'Raman_Marks';
+-------------+
| Raman_Marks |
+-------------+
|          86 |
+-------------+
1 row in set (0.00 sec)

  1. MySQL স্টোরড ফাংশন দিয়ে টেবিলে মান ইনসার্ট করার পদ্ধতি

  2. MySQL ডাটাবেস থেকে স্টোরড ফাংশন ডিলিট করার পদ্ধতি

  3. PHP-তে mysql_fetch_assoc() ব্যবহার করে MySQL টেবিলের সকল রেকর্ড প্রদর্শন

  4. শর্তসাপেক্ষ MySQL ভিউ তৈরি করা (WHERE ক্লজ)