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!