各位用户为了找寻关于mysql临时表用法分析【查询结果可存在临时表中】的资料费劲了很多周折。这里教程网为您整理了关于mysql临时表用法分析【查询结果可存在临时表中】的相关资料,仅供查阅,以下为您介绍关于mysql临时表用法分析【查询结果可存在临时表中】的详细内容
本文实例讲述了mysql临时表用法。分享给大家供大家参考,具体如下:
一、创建临时表可以将查询结果寄存。报表制作的查询sql中可以用到。
(1)关于寄存方式,mysql不支持:
? 1select
*
into
tmp
from
maintenanceprocess
(2)可以使用:
? 1create
table
tmp (
select
...)
举例:
? 1 2 3 4 5 6 7#单个工位检修结果表上部
drop
table
if EXISTS tmp_单个工位检修结果表(检查报告)上部;
create
table
tmp_单个工位检修结果表(检查报告)上部 (
select
workAreaName
as
'机器号'
,m.jobNumber
as
'检修人员编号'
,u.userName
as
'检修人员姓名'
,loginTime
as
'检修开始时间'
,
CONCAT(FLOOR((TIME_TO_SEC(exitTime) - TIME_TO_SEC(loginTime))/60),
'分钟'
)
as
'检修持续时长'
from
maintenanceprocess
as
m
LEFT
JOIN
user
u
ON
m.jobNumber = u.jobNumber
where
m.jobNumber = [$检修人员编号]
and
loginTime = [$检修开始时间]
);#创建临时表
select
*
from
tmp_单个工位检修结果表(检查报告)上部;
备注:[$检修开始时间]是可输入查询的值
(3)创建临时表的另一种方式举例:
存储过程中:
? 1 2 3 4 5 6 7 8 9 10 11 12 13BEGIN
#Routine body goes here...
declare
cnt
int
default
0;
declare
i
int
default
0;
set
cnt = func_get_splitStringTotal(f_string,f_delimiter);
DROP
TABLE
IF EXISTS `tmp_split`;
create
temporary
table
`tmp_split` (`val_`
varchar
(128)
not
null
)
DEFAULT
CHARSET=utf8;
while i < cnt
do
set
i = i + 1;
insert
into
tmp_split(`val_`)
values
(func_splitString(f_string,f_delimiter,i));
end
while;
END
希望本文所述对大家MySQL数据库计有所帮助。
原文链接:https://blog.csdn.net/haoranhaoshi/article/details/80159439