将准备好的语句的结果作为表存储在mysql中?
问题描述:
是否有可能将预备表的结果存储在mysql中?将准备好的语句的结果作为表存储在mysql中?
我的使用情况是 -: 我基于源表的某些条件下创建两个变量,然后获取随机行,在此基础上的标准。因为我有这样的表的10,I应该是第一连接它们,然后做此随机化的“整体”的超车/过滤标准(也见下文@total,这是我的主要标准,PER表)
set @total=(select count(*) from tab_1 where predict_var ="4" or predict_var ="2") ;
set @sample= (select @total*(70/30)) ;
PREPARE STMT FROM " SELECT * FROM tab_1 WHERE predict_var = '4' or predict_var = '2' union
(SELECT * FROM tab_1 WHERE predict_var = '0' or predict_var = '1' ORDER BY RAND() limit ? )" ;
EXECUTE STMT USING @sample;
执行完此声明后 - 我想要存储这些行,以便稍后检索,最好以表格的形式存在。我想要做这样的事情
# incorrect syntax, but I would like something similar
create table tab_derived_1
select * from
EXECUTE STMT USING @sample;
提示:+1为额外提及,为什么这不适用于准备好的陈述。
答
把创建表的语句:
PREPARE STMT FROM "CREATE TABLE tab_derived_1 SELECT * FROM tab_1 WHERE predict_var = '4' or predict_var = '2' union
(SELECT * FROM tab_1 WHERE predict_var = '0' or predict_var = '1' ORDER BY RAND() limit ? )" ;
EXECUTE STMT USING @sample;
如果你想返回的结果,而不是仅仅将它们存储在一个表中,只是做最后的
SELECT * FROM tab_derived_1
中邦与优雅。我担心,有人会“扔”存储过程等在我身上!想知道为什么我没有想到这个:)谢谢。 +1 – ekta