4

私は SQL の関数を初めて使用し、MySQL テーブルの値を以前のものと比較する関数を作成したいと考えていますが、これを行う方法がわかりません。

例 (iId は入力値)

DECLARE pVal INT(20);
DECLARE val INT(20);

SELECT price INTO pVal FROM products WHERE Id=iId;

商品から価格を選択します。

IF 価格 == pVal THEN
SET val = 価格;
END IF;

ありがとう

4

1 に答える 1

1

テーブルに対してselectクエリを実行し、その関数から戻ると、操作後に複数の値が返される方法がわかりませんでした。また、複数の行を返す関数でSELECTクエリを実行できるかどうかもわかりませんでした。最初の答えは、データの配列を返すことができないか、関数から複数の行を返すことができないということです。したがって、これを行う最良の方法は、返された新しいデータセットを使用して一時テーブルを作成することだと思います。

存在する場合は一時テーブルを削除しますemployeeTemp;
   一時テーブルの作成employeeTempAS
   SELECT id、start_date
    FROM従業員;

次に、答えは「はい」です。関数内でSELECTクエリを実行して、複数の行を返すことができます。

申し訳ありませんが、MySQL関数はまったく初めてです。

于 2010-03-16T16:15:10.243 に答える