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

次の2つの方法はうまく機能し、変数を宣言する必要はありません

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

違いは、最初のステートメントでは変数に格納する必要のない列を含めることができ、2番目のステートメントでは... INTO ...リストされているすべての列を変数に格納する必要があることです。

于 2013-03-13T05:44:13.213 に答える