以前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没有返回值

解决方案 »

  1.   

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

  2.   

    已解决,改成下面就可以了;我是想把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 
      

  3.   

    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//
      

  4.   

    MYSQL的官方免费手册上有例子。select col into varselect var:=col from ..