我正在查询一个只有读取权限的大型 mysql 数据库,我想将一些慢速查询结果设置为变量“foo”,以便我可以在其他查询中再次使用它们。
基本上,我想为繁琐的子查询提供一个变量,这样我就可以重用它,而无需在每次我想使用它时都运行它。
当我输入时:
set @foo := (select *
from table1 join table2
where bar = 0
group by id);
我得到:错误 1241 (21000):操作数应包含 1 列 如果我限制为 1 列,错误 1242 (21000):子查询返回超过 1 行
有没有办法将数组或表存储在变量中?我没有创建临时表的权限。
最佳答案
当你在MySQL
做的时候应该是@
。
set @foo := (select *
from table1 join table2
where bar = 0
group by id);
关于mysql - 将查询结果分配给 MySQL 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13737242/