Mysql 存储过程问题

大家好,我遇到一个 很诡异的问题

 今天写了一个存储过程 
 /

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 调用这个存储过程 返回的值始终是 null

SELECT CONCAT('better hope myVar is not null', 'author_id',authorname) INTO mychr;

那位大牛给看看 这方面的问题 不胜感激。

1个回答

DECLARE authorname varchar(100) DEFAULT '';

如果差不到authorname,则authorname默认为null。此时
SELECT CONCAT('better hope myVar is not null', 'author_id',authorname) INTO mychr;

也将为null

wuyakenihao
郑州boy TAO哥谢谢你的帮助 问题解决了 是我的存储过程声明的时候变量 中的ID 的问题,估计这个id 是mysql 的关键字 我把这个id 改个别的名字就OK 了。
7 年多之前 回复
jinnianshilongnian
jinnianshilongnian authorname 肯定是null 我还是怀疑此处没查看 SELECT name INTO authorname FROM vc_user WHERE id=304633; 你换个试试
7 年多之前 回复
wuyakenihao
郑州boy TAO哥 我的这个这个是能查出来值,但是在下面的引用中不知道为啥就是付不上值,不知道你做过实验没。
7 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问