来源:自学PHP网 时间:2015-04-16 10:51 作者: 阅读:次
[导读] 通常单天的日志 只记录当天的日志信息,如果需要查看一月内的日志信息需要对每天的日志表结果集合进行拼接,通常用到 union 。储存过程:drop PROCEDURE if EXISTS unionSp;DELIMITER create pro...
|
通常单天的日志 只记录当天的日志信息,如果需要查看一月内的日志信息需要对每天的日志表结果集合进行拼接,通常用到 union 。 储存过程:
drop PROCEDURE if EXISTS unionSp;
DELIMITER //
create procedure unionSp(sTime varchar(32), eTime varchar(32),tchema varchar(32))
begin
declare sqlVar varchar(1024000);
declare rest int;
declare tableName varchar(1024);
set rest = 100;
set sqlVar='';
while rest > 0 do
set sTime = (select DATE_FORMAT((select ADDDATE(sTime,1)),'%Y%m%d'));
set tableName=CONCAT('tbl_req_',sTime);
select count(1) from information_schema.tables where table_name = tableName and TABLE_SCHEMA=tchema into @cnt;
if @cnt != 0 then
if rest=1 then
set sqlVar=CONCAT(sqlVar,' SELECT DISTINCT channel_id,app_id from tbl_req_',sTime);
ELSE
set sqlVar=CONCAT(sqlVar,' SELECT DISTINCT channel_id,app_id from tbl_req_',sTime,' UNION');
END IF;
END if;
set rest = DATEDIFF(eTime,sTime);
END while;
set @v_s=sqlVar;
prepare stmt from @v_s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
end;
//
DELIMITER;
call unionSp('20140730','20140930','biz_date')
union:联合的意思,即把两次或多次查询结果合并起来。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com