変数はクエリで更新されることはなく、常にデフォルト値があります
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)
変数はクエリで更新されることはなく、常にデフォルト値があります
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)
変数の名前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
変数名はフィールド名とは異なる必要があります。
次の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 ...
リストされているすべての列を変数に格納する必要があることです。