『转』MySQL存储过程语法例子
原文地址:http://blog.chinaunix.net/uid-540802-id-138873.html
------------------------- 自动生成随机数据存储过程 -------------------------
drop PROCEDURE if exists genRand;
delimiter //
create PROCEDURE genRand(in rank int, in add_num int, in statTime char(10))
-- rank:随机最大邮件数, add_num:生成条数, startTime:统计数据日期
Begin
declare mobile long;
declare tmp int;
set mobile = 13600000000;
set tmp = 1;
-- delete from ippush_stats_email;
while tmp <= add_num do
insert into ippush_stats_email values(mobile + tmp, 1, now(), statTime,
random_int(rank), random_int(rank), random_int(rank), random_int(rank),random_int(rank),
random_int(rank), random_int(rank), random_int(rank), random_int(rank),random_int(rank),
random_int(rank), random_int(rank), random_int(rank), random_int(rank),random_int(rank),
random_int(rank), random_int(rank), random_int(rank), random_int(rank),random_int(rank),
random_int(rank), random_int(rank), random_int(rank), random_int(rank) );
set tmp = tmp + 1;
end while;
end//
delimiter ;
call genRand(10, 10, '2010-10-6');
------------------------- 统计从time1到time2时段的 -------------------------
drop PROCEDURE if exists doStats;
delimiter //
create PROCEDURE doStats(in time1 char(10), in time2 char(10))
Begin
declare _mobile char(11);
declare _sums int;
declare _stat_time date;
declare _count int;
declare _user_type int;
declare fetchSeqOk int;
declare fetchSeqCursor cursor for
select mobile, count(*) as count, user_type, stat_time, max((clock_1 + clock_2 + clock_3+clock_4+clock_5+clock_6+clock_7+clock_8+clock_9+
clock_10+clock_11+clock_12+clock_13+clock_14+clock_15+clock_16+clock_17+clock_18+clock_19+
clock_20+clock_21+clock_22+clock_23+clock_24)) as sums
from ippush_stats_email
where stat_time >= time1 and stat_time <= time2
group by mobile;
declare CONTINUE HANDLER FOR NOT FOUND SET fetchSeqOk = 0;
set fetchSeqOk = 1;
open fetchSeqCursor;
while fetchSeqOk = 1 do
fetch fetchSeqCursor into _mobile, _count, _user_type, _stat_time, _sums;
if _sums > 30 then
call onelineStat(1, _user_type, time1, time2, _mobile);
else
call onelineStat(2, _user_type, time1, time2, _mobile);
end if;
end while;
close fetchSeqCursor;
end//
delimiter ;
call doStats('2010-10-01', '2010-11-05');
------------------------- 一条业务线的统计 --------------------------
drop PROCEDURE if exists onelineStat;
delimiter //
create PROCEDURE onelineStat(in type int, in inuser_type int, in time1 char(10), in time2 char(10), in inmobile char(11))
Begin
if inuser_type = 1 then -- is mas user
if type = 1 then -- is level 1
insert into ippush_strategy (select mobile, inuser_type, concat(max(clock_1)>=4,
max(clock_2)>=4,
max(clock_3)>=4,
max(clock_4)>=4,
max(clock_5)>=4,
max(clock_6)>=4,
max(clock_7)>=4,
max(clock_8)>=4,
'111111111',
max(clock_19)>=4,
max(clock_20)>=4,
max(clock_21)>=4,
max(clock_22)>=4,
max(clock_23)>=4,
max(clock_24)>=4), now(), time1, time2
from ippush_stats_email
where mobile = inmobile and stat_time >= time1 and stat_time <= time2 and user_type = inuser_type
group by mobile ) ;
else
insert into ippush_strategy ( select mobile, inuser_type, concat(max(clock_1)>=4,
max(clock_2)>=4,
max(clock_3)>=4,
max(clock_4)>=4,
max(clock_5)>=4,
max(clock_6)>=4,
max(clock_7)>=4,
max(clock_8)>=4,
max(clock_9)>=4,
max(clock_10)>=4,
max(clock_11)>=4,
max(clock_12)>=4,
max(clock_13)>=4,
max(clock_14)>=4,
max(clock_15)>=4,
max(clock_16)>=4,
max(clock_17)>=4,
max(clock_18)>=4,
max(clock_19)>=4,
max(clock_20)>=4,
max(clock_21)>=4,
max(clock_22)>=4,
max(clock_23)>=4,
max(clock_24)>=4), now(), time1, time2
from ippush_stats_email
where mobile = inmobile and stat_time >= time1 and stat_time <= time2 and user_type = inuser_type
group by mobile ) ;
end if;
else -- is mig user
if type = 1 then
insert into ippush_strategy values(inmobile, inuser_type, '111111111111111111111111', now, time1, time2);
end if;
end if;
end//
delimiter ;
------------------ 调用 --------------------
call onelineStat(1, 1, '2010-10-01', '2010-11-05', '13600000001');
『转』MySQL存储过程语法例子的更多相关文章
- mysql存储过程语法及实例
存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法-------------------- 一.创建存储过程cr ...
- Mysql存储过程语法
一口气弄完了! 一.条件语句if-then-else: create procedure demo_1(in param int) begin declare var int; ; then inse ...
- 『007』MySQL
『005』索引-Database MySQL [001]- 点我快速打开文章[第一章 MySQL 大纲介绍] [002]- 点我快速打开文章[第二章 MySQL 介绍和安装] 更新中
- mysql存储过程简单例子
1.之前经常在oracle数据库中使用存储过程,换到mysql后用的不多,但是有时候也用,大致记录一下,基本和oracle的一样. CREATE DEFINER = `root`@`%` PROCED ...
- Mysql 存储过程小例子
创建存储过程: DELIMITER $$ USE `database_name`$$ DROP PROCEDURE IF EXISTS `add_or_update_user`$$ )) BEGIN ...
- 重新学习MySQL数据库2:『浅入浅出』MySQL 和 InnoDB
重新学习Mysql数据库2:『浅入浅出』MySQL 和 InnoDB 作为一名开发人员,在日常的工作中会难以避免地接触到数据库,无论是基于文件的 sqlite 还是工程上使用非常广泛的 MySQL.P ...
- 『浅入浅出』MySQL 和 InnoDB
作为一名开发人员,在日常的工作中会难以避免地接触到数据库,无论是基于文件的 sqlite 还是工程上使用非常广泛的 MySQL.PostgreSQL,但是一直以来也没有对数据库有一个非常清晰并且成体系 ...
- Mysql 存储过程基本语法
delimiter //一般情况下MYSQL以:结尾表示确认输入并执行语句,但在存储过程中:不是表示结束,因此可以用该命令将:号改为//表示确认输入并执行. 一.创建存储过程 1.基本语法: crea ...
- mysql 调用存储过程及例子
存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法-------------------- 一.创建存储过程 c ...
随机推荐
- 【读书笔记】iOS-使用SQL数据库保存信息
使用BLOB字段来保存图片是不是一个好的方法还存在争议,小图片除外.更常用的方法是将图片保存为一个文件,然后只在数据中保存图片文件的元数据,比如文件的路径.但是,如果你想把数据文件(初始数据)打包成一 ...
- react+antd分页 实现分页及页面刷新时回到刷新前的page
antd框架地址:https://ant.design/index-cn 利用antdUI框架做了个分页,其他功能都没问题,但是页面跳转后刷新会回到第一页,经过学习,在组件里增加了hash值,详情请看 ...
- 生产者与消费者+Queue(线程安全)
from queue import Queue from lxml import etree import requests from urllib import request from threa ...
- 基于bootstrap的双日历插件 daterangepicker
我遇到需求是要求我将daterangepicker的一个双日期选择格式修改成两个单日期格式的日期选择框(方便手机端显示),要求如下: 1.两个单日期格式分别为开始日期和结束日期 2.开始日期可选择范围 ...
- (网页)readonly和disabled的区别(转)
转自脚本之家: 标签的readonly和disabled属性的区别: 在表单元素中,readonly和disable有类似之处,因为它们都可以将一些表单元素设置为"不可用"状态,当 ...
- (网页)jQuery UI 实例 - 日期选择器(Datepicker)
默认功能 日期选择器(Datepicker)绑定到一个标准的表单 input 字段上.把焦点移到 input 上(点击或者使用 tab 键),在一个小的覆盖层上打开一个交互日历.选择一个日期,点击页面 ...
- JsonParseException:非法的unquoted字符((CTRL-CHAR,代码9)):必须被转义
其它异常,Could not read document: Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped ...
- Linux下修改IP、DNS、路由命令行设置
本文最后修改时间:20180313 一.快速修改,重启后设置就没了 ifconfig eth0 192.168.1.22 netmask 255.255.255.0 up route add defa ...
- maven(八),阿里云国内镜像,提高jar包下载速度
镜像 maven默认会从中央仓库下载jar包,这个仓库在国外,而且全世界的人都会从这里下载,所以下载速度肯定是非常慢的.镜像就相当于是中央仓库的一个副本,内容和中央仓库完全一样,目前有不少国内镜像,其 ...
- ER模型试题
M公司为了便于开展和管理各项业务活动,提高公司的知名度和影响力,拟构建一个基于网络的会议策划系统. [需求分析结果] 该系统的部分功能及初步需求分析的结果如下 : (1)M公司旗下有业务部.策划部和其 ...