BEGIN DECLARE _uuid VARCHAR(60); DECLARE _insertNum INT DEFAULT 0; DECLARE done int DEFAULT 0; #定义游标 DECLARE rs_cursor CURSOR FOR SELECT uuid,(10-IFNULL(rateNum,0)) as insertNum from product p LEFT JOIN (SELECT product_uuid,count(product_uuid) AS rateNum FROM rate GROUP BY product_uuid HAVING rateNum<10) as n ON p.uuid = n.product_uuid; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1; OPEN rs_cursor; cursor_loop:LOOP FETCH rs_cursor INTO _uuid,_insertNum; IF done = 1 THEN LEAVE cursor_loop; END IF; SELECT _uuid,_insertNum; INSERT INTO rate(uuid,nick,result,created,content,tid,product_uuid,deleted,flag) SELECT rand_string(10),nick,result,now(),content,NULL,_uuid,0,NULL FROM rate_sample ORDER BY RAND() LIMIT _insertNum; END LOOP; CLOSE rs_cursor; END
select count(*) from (SELECT s.phone_num,u.weixin_id,s.total_point FROM `app_db`.`si_receive_red_envelope` s left join app_user u on s.phone_num = u.phone_num where ifNull(u.weixin_id,'') !='')
m left join si_red_draw_log w on m.phone_num = w.phone_num where ifNull(w.weixin_id,'') ='' and m.total_point >=25 and m.total_point <50
相关推荐
Mysql游标(循环操作)
本章节介绍使用游标来批量进行表操作,包括批量添加索引、批量添加字段等。如果对存储过程、变量定义、预处理还不是很熟悉先阅读我前面写过的关于这三个概念的文章,只有先了解了这三个概念才能更好的理解这篇文章。...
带游标的mysql存储过程例子。
mysql游标使用的整个过程为: 1.创建游标 代码如下:DECLARE calc_bonus CURSOR FOR SELECT id, salary, commission FROM employees; 2.打开游标 代码如下:OPEN calc_bonus; 3.使用游标 代码如下:FETCH calc_bonus ...
Mysql从5.0开始支持存储过程和trigger,游标在递归树结构中非常好用
NULL 博文链接:https://fangyong2006.iteye.com/blog/768291
[mysql游标的用法及作用] 例子: 当前有三张表A、B、C其中A和B是一对多关系,B和C是一对多关系,现在需要将B中A表的主键存到C中; 常规思路就是将B中查询出来然后通过一个update语句来更新C表就可以了,但是B表中有...
NULL 博文链接:https://yuhuiblog695685688425687986842568269.iteye.com/blog/2424995
自己用游标插入数据的测试,可以用于游标来对数据进行批量更改,
Mysql存储过程游标触发器
mysql游标嵌套[文].pdf
本文实例讲述了mysql游标的原理与用法。分享给大家供大家参考,具体如下: 本文内容: 什么是游标 创建游标 使用游标 首发日期:2018-04-18 什么是游标: 如果你前面看过mysql函数,会发现无法使用返回多行...
MySql存储过程,游标的使用方法,速度极快!
本文实例讲述了MySQL游标概念与用法。分享给大家供大家参考,具体如下: 1、游标的概念(Cursor) 一条sql,对应N条资源,取出资源的接口,就是游标,沿着游标,可以一次取出1行。如果开发过安卓的同学应该知道有一...
本篇文章是对MySQL游标的具体使用进行了详细的分析介绍,需要的朋友参考下 测试表level 代码如下: createtabletest.level(namevarchar(20)); 再insert些数据; 初始化 代码如下: ...
数据库测试中,常常需要对数据库中的表进行填充或者批量更改数据的操作,可以通过游标来实现对每一个查询记录的操作,通过rand()函数的使用获得随机数,将随机数插入到表中,即可更新或填充数据表。