0

变量从未通过查询更新,并且始终具有默认值

BEGIN
    DECLARE sP INT DEFAULT 1;
    DECLARE cBB INT DEFAULT 0;

    SELECT sprice, cb INTO  sP, cBB FROM item WHERE id = 2;
END

这里需要一些指导来了解它有什么问题(MySQL 5.5.20 版)

4

2 回答 2

1

将变量重命名cb为另一个 -

BEGIN
    DECLARE sP INT DEFAULT 1;
    DECLARE cB_var INT DEFAULT 0;

    SELECT sprice, cb INTO  sP, cB_var FROM item WHERE id = 2;
END

变量名称应与字段名称不同。

于 2013-03-12T09:18:40.937 回答
0

以下两种方法效果很好,不需要 DECLARE 变量

BEGIN
     SELECT @sP := sprice, @cBB := cb FROM item WHERE id = 2;
END

INTO或者如果我们想用子句来做

BEGIN
     SELECT sprice, cb INTO  @sP, @cBB FROM item WHERE id = 2;
END

不同之处在于,在第一个语句中,您可以拥有不需要存储在变量中的列,而在第二个语句中,... INTO ...每个列出的列都必须存储在变量中。

于 2013-03-13T05:44:13.213 回答