MySQL循环游标的使用
BEGIN #Routine body goes here.. -- 定义游标接收参数 DECLARE tmp1 VARCHAR(100); DECLARE tmp2 VARCHAR(200); -- 定义结束标志 DECLARE done INT DEFAULT 0; -- 定义游标 DECLARE companyList CURSOR FOR SELECT name, register_address FROM ads_company_info WHERE flag=0 AND status=0 AND register_address LIKE "%海淀区%" LIMIT 20; -- 将结束标志绑定到游标 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1; -- 打开游标 OPEN companyList; -- 开始循环 myloop : LOOP -- 提取游标里的数据放入接收参数 FETCH companyList INTO tmp1,tmp2; -- 声明结束的时候 IF done=1 THEN LEAVE myloop; END IF; -- 这里做想做的事 INSERT into test_demo_1013 (name,address) VALUES (tmp1,tmp2); END LOOP; -- 关闭游标 CLOSE companyList; UPDATE test_demo_1013 SET flag=1 WHERE flag=0; END
游标概念:
一条sql,对应N条资源,取出资源的接口,就是游标,沿着游标,可以一次取出1行。