ZeroTrust
2017-12-18 23:40
采纳率: 75%
浏览 1.0k

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

9条回答 默认 最新

  • qq_31397971 2017-12-19 01:46
    已采纳

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

    点赞 评论
  • tom_tom_tom_xiang 2017-12-19 00:38

    IF stuname ='' THEN

    ...
    

    ELSE

    ...

    END IF;

    
    
    点赞 评论
  • bashenmail 2017-12-19 01:36

    帮你该写下,你的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
    
    点赞 评论
  • czg20140703 2017-12-19 01:36

    213123123123

    点赞 评论
  • bashenmail 2017-12-19 01:36
     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
    
    点赞 评论
  • shuangweifuhao 2017-12-19 02:05

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

    点赞 评论
  • yixuyao5982 2017-12-19 03:12

    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

    点赞 评论
  • fwhezfwhez 2017-12-26 20:20

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

    点赞 评论
  • fwhezfwhez 2017-12-26 20:28

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

    点赞 评论

相关推荐 更多相似问题