私はmysqlデータベースを使用しています。私は関数を作成しました。その関数では、ローカル変数を設定しています。私はテーブルからレコードをフェッチする必要があるので、これでCURSORを使用しています。mysqlデータベースで関数を作る際にループを使ってCURSORを使ってローカル変数を設定する方法
フェッチされたレコードに基づいて、ファンクションは実際のデータ型をif条件から戻します。
私は、mysql関数でカーソルのforループを作成する方法の手順を説明してください。 私のコードは次のようである: -
DELIMITER $$;
CREATE FUNCTION score_exam (e integer)
RETURNS real
BEGIN
Declare t float ;
Declare c float;
Declare d int;
Declare e int;
Declare f int;
Declare g int;
Declare h int;
DECLARE done INT DEFAULT FALSE;
DECLARE r CURSOR FOR SELECT num, quen_n, cha_nu, sele_anr, cor_ans FROM equestion WHERE exm_nm = e;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
set t=0.0;
set c=0.0;
OPEN r;
read_loop: LOOP
FETCH r INTO d,e,f,g,h;
IF done THEN
LEAVE read_loop;
END IF;
set t = t + 1.0;
IF g = h THEN
set c = c + 1.0;
END IF;
END LOOP;
IF t > 0.0 THEN
RETURN c/t;
ELSE
RETURN 0.0;
END IF;
CLOSE r;
END $$
誰も私を助けてしまう場合は、私は彼にGREATFULになります。
いくつかのコードを入れて、これまでに何をしていますか? –