首頁 > 資料庫 > mysql教程 > 我們如何建立一個使用表中動態資料的 MySQL 儲存函數?

我們如何建立一個使用表中動態資料的 MySQL 儲存函數?

PHPz
發布: 2023-09-18 13:37:03
轉載
1381 人瀏覽過

我们如何创建一个使用表中动态数据的 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 W
HERE 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)
登入後複製

以上是我們如何建立一個使用表中動態資料的 MySQL 儲存函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板