将查询结果分配给MySQL变量

5un*_*un5 10 mysql sql variables mysql-error-1193

我正在查询只有读权限的大型mysql数据库,我想将一些慢查询结果设置为变量'foo',所以我可以在其他查​​询中再次使用它们.

基本上,我想为一个繁琐的子查询提供一个变量,所以我可以重复使用它而不需要每次我想使用它时都要运行它.

当我进入:

set @foo := (select *
            from table1 join table2 
            where bar = 0 
            group by id);
Run Code Online (Sandbox Code Playgroud)

我得到:ERROR 1241(21000):操作数应包含1列,如果我限制为1列,则ERROR 1242(21000):子查询返回超过1行

有没有办法在变量中存储数组或表?我没有创建临时表的权限.

Joh*_*Woo 4

应该是@当你在做的时候MySQL

set @foo := (select *
            from table1 join table2 
            where bar = 0 
            group by id);
Run Code Online (Sandbox Code Playgroud)