mysql 游标 会多循环一次_MySql中游标使用总是多循环一次的解决方法_MySQL

CREATE DEFINER = 'root'@'%'PROCEDURE deyestest.procedure2()BEGIN DECLARE v_id INT; DECLARE v_userName VARCHAR(155); DECLARE v_mobileNum VARCHAR(55); DECLARE v_tmp VARCHAR(1000); DECLARE v_info VARCHAR(2000); DECLARE v_info2 VARCHAR(2000); DECLARE v_int INT; DECLARE v_json LONGTEXT; DECLARE done INT DEFAULT 0; DECLARE myCursor CURSOR FOR SELECT userId , userName , mobileNum FROM user_info ORDER BY userId LIMIT 2, 2; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; OPEN myCursor; SET v_info = concat('{'); REPEAT IF done <> 1 THEN FETCH myCursor INTO v_id, v_userName, v_mobileNum; SET v_tmp = concat('[', v_id, ',', v_userName, ',', v_mobileNum, ']', ','); SET v_info = concat(v_info, v_tmp); FETCH myCursor INTO v_id, v_userName, v_mobileNum;END IF;UNTIL doneEND REPEAT; SET v_int = length(v_info); SET v_info = left(v_info, v_int - 1); SET v_info2 = concat(v_info, '}'); CLOSE myCursor;END

代码如上:

主要就是注意循环条件done的使用,当游标取到最后一个数据的下一个不存在的数据时,done会被值为1,那么就要在repeat中进行done的判断,当done不为1的时候,才执行循环。

f68f2add0b68e4f9810432fce46917b7.png

相关标签:

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值