mysql根据传入参数创建不同的存储过程

图片说明
问题出在,Empty那里, ‘张明’在数据表中存在,但是返回Empty,是因为我的if语句写的有问题吗?

把 stuname is not null 改为 stuname <> ''

IF stuname ='' THEN

...

ELSE

...

END IF;


帮你该写下,你的sql是有问题不建议的写法。

 select a.sno,a.sname,a.cname,a.grade
from student1 a
left join course on c a.sno = c.sno 
left join sc d on a.sno = d.sno
where a.sname = stuname

213123123123

 select a.sno,a.sname,a.cname,a.grade
from student1 a
left join course c on c a.sno = c.sno 
left join sc d on a.sno = d.sno
where a.sname = stuname

set @student_name= null;
call student_course2(student_name);

select a.sno,a.sname,a.cname,a.grade
from student1 a
left join course c on c a.sno = c.sno
left join sc d on a.sno = d.sno
where a.sname = stuname

是想表述如何传空参数吗,试试定一个变量为空,在把这个空变量放进存储过程的参数里Call一下,毕竟存储过程的定义就必须有一个IN,什么都不写书不可能调用的

事实上,这种情况只建议写两个存储过程