【问题标题】:How can I get and assign the return value from MySQL stored procedure如何从 MySQL 存储过程中获取和分配返回值
【发布时间】:2013-06-28 12:34:03
【问题描述】:

我有下一个存储过程:

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `getUserIdByLogin`(userId VARCHAR(255))
BEGIN
    SELECT id FROM `userdata` WHERE login = userId;
END

我想声明一个新变量@tmp,例如并为此做点什么:

SET @tmpValue = CALL getUserIdByLogin("someLogin");

但它不起作用。

如果只是打电话:

CALL getUserIdByLogin("someLogin");

然后我会看到结果,但我需要在变量(数组类型)中声明结果。

我该怎么做?

谢谢!

【问题讨论】:

    标签: mysql variables stored-procedures call declare


    【解决方案1】:
    CREATE DEFINER=`root`@`localhost` PROCEDURE `getUserIdByLogin`(
       userId VARCHAR(255),
       OUT idout int
    )
    BEGIN
        SELECT id INTO idout FROM `userdata` WHERE login = userId;
    END
    

    然后

    SET @id = 0;
    CALL getUserIdByLogin("someLogin",  @id);
    SELECT @id;
    

    【讨论】:

    • 第二个块中有逗号,但没有第二个参数。那是故意的吗?我不经常接触mysql这个领域
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 2013-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多