问题描述
大家好,我遇到一个 很诡异的问题 今天写了一个存储过程 /PROCEDURE `video_center`.`updateusercourse`(IN id VARCHAR(20),IN videoname VARCHAR(50),IN author_id INT(11),IN vedio_id INT(11),OUT mychr VARCHAR(200))这个只是代码的开始的一部分 /**用户的名字*/ DECLARE authorname VARCHAR(20); SELECT `name` INTO authorname FROM `vc_user` WHERE id=304633; SELECT CONCAT('better hope myVar is not null', 'author_id',authorname) INTO mychr;以上只是部分代码 存储过程本身编译是通过的 但是问题是 我 用select into 给变量赋值的时候出现了 问题SELECT `name` INTO authorname FROM `vc_user` WHERE id=304633;首先这条sql 语句如果单独执行不赋值的话 是能查询出来值的 然后 使用这条sql 语句 给返回的值 赋值 可以怎么也付不了值 不知道什么原因,我用java 调用这个存储过程 返回的值始终是 nullSELECT CONCAT('better hope myVar is not null', 'author_id',authorname) INTO mychr; 那位大牛给看看 这方面的问题 不胜感激。
解决方案
DECLARE authorname varchar(100) DEFAULT ''; 如果差不到authorname,则authorname默认为null。此时 SELECT CONCAT('better hope myVar is not null', 'author_id',authorname) INTO mychr; 也将为null