Php 将参数传递给Mysql函数
我在mysql中创建了这个函数,但该函数不起作用。其动机是从包含学生在每门学科、一个班级、一个学期和一个学校课程中的分数的视图中获得最高分数。subjectid、termid、sessionid和类将从php传递给函数。我的目标是得到最高的分数Php 将参数传递给Mysql函数,php,mysql,Php,Mysql,我在mysql中创建了这个函数,但该函数不起作用。其动机是从包含学生在每门学科、一个班级、一个学期和一个学校课程中的分数的视图中获得最高分数。subjectid、termid、sessionid和类将从php传递给函数。我的目标是得到最高的分数 CREATE FUNCTION highestscore (class CHAR(20),subjectid INT, termid AS INT,sessionid INT) RETURNS INT BEGIN SEL
CREATE FUNCTION highestscore (class CHAR(20),subjectid INT, termid AS INT,sessionid INT)
RETURNS INT
BEGIN
SELECT Max(total) AS hscore
FROM reportsheetsubjectsview
WHERE class=class AND subjectid=subjectid
AND termid=termid AND sessionid=sessionid
RETURN hscore;
END
已编辑的存储过程版本
创建定义器=root@localhost在subjectid INT中,在类VARCHAR10中,在termid INT中,在sessionid INT中,在sessionid INT中,在outhighesttotalscore INT中,过程得分最高
确定性
开始从class=class的scoreview中将Maxtotal选择为highesttotalscore
主语id=subjectid,termid=termid,sessionid=sessionid;
结束将GROUPBY子句添加到select中
SELECT Max(total) AS hscore
FROM reportsheetsubjectsview
WHERE class=class AND subjectid=subjectid
AND termid=termid AND sessionid=sessionid GROUP BY class, subjectid, termid, sessionid
什么不起作用?你有错误吗?或者结果不正确?我已经用下面的mysql过程重写了上面的mysql函数。它现在正在输出,但计算值不正确。它将忽略参数化零件。它返回的是表中的最高分数,而不是基于参数。创建定义器=root@localhost程序最高分在subjectid INT、class VARCHAR10、termid INT、sessionid INT、OUT highesttotalscore INT中,从scoreview中选择Maxtotal到最高分TotalScore,其中class=class,subjectid=subjectid,termid=termid,sessionid=sessionid;endI已经用您给我的答案编辑了程序,但我仍然得到相同的结果。@AdelekeAdelani您可以编辑您的问题并添加一个示例,说明您的数据在表中的外观,以及您希望从所述示例数据中得到的结果吗?