MySQL存储过程

注:name是存储过程的名字
//TODO:存储过程
//传参
// $aid1 = ‘report_aid’;
// m a i n 2 = " c a l l s a m p l e n u m ( ′ " . main2 = "call sample_num('". main2="callsamplenum(".aid1."’)";
// r e s u l t 2 = D b : : q u e r y ( result2 = Db::query( result2=Db::query(main2);

// $res = Db::query(‘call name(:in_param1,in_param2,)’,
// [
// ‘in_param1’ => $in_param1,
// ‘in_param2’ => $in_param2,
// ]);

$res = Db::query(‘call name’);
//如果存储过程不需要返回数据
Db::execute(‘call name’);

数据库-存储过程代码

传入的参数声明
在这里插入图片描述
注:数据库函数过程(传入的是不同字段时)

BEGIN
#Routine body goes here...

DECLARE curr_time date DEFAULT NOW();

DECLARE datas TINYTEXT DEFAULT NULL;

DECLARE opt VARCHAR(255) DEFAULT '';

DECLARE min_time VARCHAR(200) DEFAULT '';

DECLARE start_hour VARCHAR(200) DEFAULT '';

DECLARE end_hour VARCHAR(200) DEFAULT '';

DECLARE last_res VARCHAR(500) DEFAULT '';

DECLARE hour_time date DEFAULT NOW();

SET min_time = DATE_ADD(curr_time, INTERVAL -7 DAY);

DROP TEMPORARY TABLE
IF EXISTS main;

CREATE TEMPORARY TABLE main (
 `date` VARCHAR(100) DEFAULT NULL,
 `count` varchar(50) DEFAULT NULL
);

SET datas =  '';
SET opt = CONCAT("  AND ",aid," <> -1");
WHILE min_time <  curr_time
DO 

		
		SET start_hour = min_time;
		SET end_hour = DATE_ADD(start_hour, INTERVAL +2 DAY);
		
		set @sel_sql = CONCAT("SELECT COUNT(id) AS count FROM sample 
 	  WHERE  is_del = 1",opt," AND last_commit_time >'", start_hour ,"' AND last_commit_time < '", end_hour ,"' ORDER BY last_commit_time into @datas");
-- SELECT COUNT(id) AS count FROM sample 
 	--  WHERE  is_del = 1 AND  opt <> -1 AND last_commit_time > start_hour AND last_commit_time < end_hour ORDER BY last_commit_time INTO datas;

 	set @excutesql = @sel_sql;
 	PREPARE stmt from @excutesql;
 	execute  stmt;
 	DEALLOCATE PREPARE stmt;
  SELECT @datas INTO datas;
  INSERT INTO main(`date`,`count`) VALUES(curr_time,IFNULL(datas,"''"));

		SET min_time = DATE_ADD(min_time, INTERVAL +1 DAY);
		

END WHILE;


  SELECT GROUP_CONCAT(count) from main  into last_res;

	SELECT last_res;
END
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长夜将尽 来日可期

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值