存储过程问题

lienzhu 2013-07-30 01:57:18
以前MS SQL存储过程写习惯了,写成My SQL的,读不出数据,代码如下


CREATE DEFINER=`root`@`%` PROCEDURE `test`(in UserName varchar(20),out Score int)
BEGIN
select Score=score from st_user where username=UserName;
END


Score没有返回值
...全文
107 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2013-07-30
  • 打赏
  • 举报
回复
MYSQL的官方免费手册上有例子。 select col into var select var:=col from ..
thomasLand 2013-07-30
  • 打赏
  • 举报
回复
DELIMITER ; DROP TABLE IF EXISTS `st_user`; CREATE TABLE IF NOT EXISTS `st_user` ( `id` INT COMMENT '主键', `username` VARCHAR(32) COMMENT '用户名', `score` INT COMMENT '分数' ); ALTER TABLE `st_user` ADD CONSTRAINT PK_ST_USER PRIMARY KEY (`id`); INSERT INTO `st_user`(`id`,`username`,`score`) VALUES(1,'thomas',100); DELIMITER // DROP PROCEDURE IF EXISTS `test` // CREATE PROCEDURE `test`(in pUserName varchar(20),out pScore int) BEGIN select score into pScore from st_user where username=pUserName; END // call test('thomas',@var)// SELECT @var//
lienzhu 2013-07-30
  • 打赏
  • 举报
回复
已解决,改成下面就可以了;我是想把Score放到变量中


CREATE DEFINER=`root`@`%` PROCEDURE `test`(in UserName varchar(20),out Score int) BEGIN
select score into @score from st_user where username=@UserName;
 END 


rucypli 2013-07-30
  • 打赏
  • 举报
回复
CREATE DEFINER=`root`@`%` PROCEDURE `test`(in UserName varchar(20)) BEGIN select score from st_user where username=UserName; END

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧