Heim >Datenbank >MySQL-Tutorial >Wie erstellen wir eine in MySQL gespeicherte Funktion, die dynamische Daten aus einer Tabelle verwendet?

Wie erstellen wir eine in MySQL gespeicherte Funktion, die dynamische Daten aus einer Tabelle verwendet?

PHPz
PHPznach vorne
2023-09-18 13:37:031394Durchsuche

我们如何创建一个使用表中动态数据的 MySQL 存储函数?

Gespeicherte MySQL-Funktionen können auf Tabellen verweisen, aber sie können keine Anweisungen verwenden, die Ergebnismengen zurückgeben. Wir können also sagen, dass es keine SELECT-Abfrage gibt, die eine Ergebnismenge zurückgibt. Aber wir können SELECT INTO verwenden, um dieses Problem zu beseitigen. Beispielsweise erstellen wir eine Funktion „Avg_marks“, die die durchschnittliche Punktzahl anhand dynamischer Daten aus einer Tabelle namens „Student_marks“ (mit den folgenden Datensätzen) berechnet.

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)

Das obige ist der detaillierte Inhalt vonWie erstellen wir eine in MySQL gespeicherte Funktion, die dynamische Daten aus einer Tabelle verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Fünfte Normalform (5NF)Nächster Artikel:Fünfte Normalform (5NF)