一、创建临时表可以将查询结果寄存。报表制作的查询sql中可以用到。

(1)关于寄存方式,mysql不支持:select * into tmp from maintenanceprocess

(2)可以使用:

create table tmp (select ...)

举例:

#单个工位检修结果表上部

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)创建临时表的另一种方式举例:

存储过程中:

BEGIN

#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 把select结果保存为临时表,有2种方法

第一种,建立正式的表,此表可供你反复查询

drop table if exists a_temp;

create table a_temp as

select 表字段名称 from 表名称

或者,建立临时表,此表可供你当次链接的操作里查询.

create temporary table 临时表名称

select 表字段名称 from 表名称

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐