标签:字段名 打开 sql 过程 xxx font 有一个 目标 --
1 /* 2 定义一个变量,存储所有店的店头ID 3 分别取到每个店的客户InvitedPerson(取到这个店的所有线索) 4 对取到的线索进行筛选:按照时间对所有的线索进行排序 5 定义一个变量,去重之后的InvitedPerson存储起来 6 按照InvitedPerson查找出来的两条或者N条线索,只取第一条进行平台推送 7 */
select * from dyhl_clue where DearShipID=2 ORDER BY F_CreatorTime
/*SELECT DISTINCT <字段名> FROM <表名>*/
SELECT DISTINCT InvitedPerson FROM dyhl_clue where DearShipID=2
待测试的存储过程: 数据库是否支持 for循环: ids =(select id from table) 定义一个变量,存储需要循环的数据 for id in ids{ targetSql: update XXX from table2 where key_id = id; 进行循环,分别执行SQL语句 }; //创建存储过程前先检查是否存在,存在就删除,这个可以忽略 DROP PROCEDURE IF EXISTS staff_zt_test; //存储过程 CREATE PROCEDURE staff_zt_test() BEGIN //该变量用于标识是否还有数据需遍历 DECLARE flag INT DEFAULT 0; //创建一个变量用来存储遍历过程中的值 DECLARE id BIGINT(40); //查询出需要遍历的数据集合 DECLARE idList CURSOR FOR (SELECT id FROM table WHERE a = 1); //查询是否有下一个数据,没有将标识设为1,相当于hasNext DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag = 1; //打开游标 OPEN idList; //取值设置到临时变量中 FETCH idList INTO id; //遍历未结束就一直执行 WHILE flag != 1 DO -- targetSQL //你想要执行的目标功能,这里可以写多个SQL // 注意 //这里有一个坑,目标语句引用临时变量,实测发现不需要加@符号,但是搜索到的结果都是例如:@id ,这样来使用,实测发现无法取到数据 // 注意 update XXX from table2 where key_id = id; //一定要记得把游标向后移一位,这个坑我替各位踩过了,不需要再踩了 FETCH idList INTO id; END WHILE; CLOSE idList; END;
标签:字段名 打开 sql 过程 xxx font 有一个 目标 --
原文地址:https://www.cnblogs.com/caoxiaole/p/12787674.html