0

mysqlストアド プロシージャがあります。その中で、次のステートメントを使用してデータベースからいくつかの値を選択しています。

select version_id from version where version_name between '1.1' and '1.5' 

上記のステートメントから選択したすべての値に対してループを実行したいのは、上記のステートメントが次の行を返すと仮定する version_id (1,5,3,7)
ため、値 1,5,3,7 に対してループを実行したいということです。

どうすればこれを達成できますか?

4

1 に答える 1

0

MySQL では、Cursor 要素を使用して値をループする必要があります

CREATE PROCEDURE CURSOR_LOOP()
BEGIN
DECLARE C1 CURSOR FOR
  select version_id where version_name between '1.1' and '1.5' 

OPEN C1;
read_loop: LOOP
  FETCH C1 INTO v_ID;
  IF done THEN
     LEAVE read_loop;
  END IF;
-- YOUR ACTION HERE                                            
END LOOP;
CLOSE C1;
-- OTHERS ACTIONS
END;
于 2012-06-25T06:26:02.137 に答える