我在一个过程中使用以下sql:
READ_LOOP: LOOP
FETCH CUR INTO xStatus;
IF done THEN LEAVE READ_LOOP;
END IF;
set i = i+1;
if i mod 3 = 0 then
SET DescrStatus = CONCAT(DescrStatus, xStatus, ' | ', CHAR(13));
else if i = 1 then
SET DescrStatus = CONCAT(xStatus, ' | ');
else SET DescrStatus = CONCAT(DescrStatus, xStatus, ' | '); end if;
end if;
END LOOP READ_LOOP;
我想知道循环的最后位置。
答案 0 :(得分:0)
通过以下查询获取光标的最后一个值(这应该在循环之外)。
SELECT <column_name> INTO @last_value FROM <table_name> WHERE <where_conditions> ORDER BY <order_column> DESC LIMIT 1;
然后,在FETCH之后添加一个IF语句,如下所示:
IF xStatus = @last_value THEN
SELECT 'Last Loop' AS Status;
END IF;
答案 1 :(得分:0)
您必须设置继续处理程序。
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
有关详细信息,请查看以下链接。