我们如何创建一个使用表中动态数据的 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 |
+-------+------+---------+---------+---------+
二 rows in set (0.00 sec)

mysql> DELIMITER //
mysql> Create Function Avg_marks(S_name Varchar(50))
    -> RETURNS INT
    -> DETERMINISTIC
    -> BEGIN
    -> DECLARE M1,M两,M3,M4,avg INT;
    -> SELECT Math,English,Science,History INTO M1,M二,M3,M4 FROM Student_marks W
HERE Name = S_name;
    -> SET avg = (M1+M两+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)
登录后复造

以上即是咱们假设建立一个利用表外消息数据的 MySQL 存储函数?的具体形式,更多请存眷萤水红IT仄台另外相闭文章!

点赞(4) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部