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)